大家好,目前我正在尝试将当前的数据库迁移到另一个,并且该过程不幸涉及到python。我能够做到单线程,但是花费数小时才完成1M数据的速度非常慢。在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个而不是单个线程执行单个插入,那将会快很多
答案 0 :(得分:1)
由于您在评论中说您正在使用orientdb,请查看 在SQL Batch能力。
使用SQL BATCH不会并行插入行,但会避免每个命令的往返。
您还可以使用pyorient库从Python使用SQL BATCH:
https://github.com/mogui/pyorient#execute-orientdb-sql-batch
要并行插入数据,您需要创建多个连接, 每个帖子一个。