嗨,大家好我目前正在尝试将当前数据库迁移到另一个,并且该过程不幸涉及到python。我能够做到单线程,但它非常慢需要数小时才能完成1M数据。 python中有类似Java执行者和期货的方法吗?针对数据库插入的多线程Python
注意USER_LIST是1000/1M
for data in user_list:
q = """ insert into users(id,name,address,password)
Values({id},{name},{address},{password})
""".format(id=data['id'],name=data['name'],address=data['address'],password=data['password'])
db.command(q)
一大块,我认为这将是一个整体快很多,如果我在一个时间单个线程的运行例如8个并发线程插入8,而不是做单个插入
您正在使用哪个数据库?它可能会更快,但每个线程都需要单独的数据库连接。我首先会看到您的数据库是否支持“批量插入”或“批量插入” - 这些通常比一次插入单行要快得多。 – ErikR
嗯,所以我不能使用1个连接同时插入?我现在正在将sql导入到orientdb中。 @ErikR – kenlz
不 - 你需要每个线程一个连接。另请参阅我的答案。 – ErikR