大规模数据写入数据库提速的一点心得

近期接受到小任务,要处理千万级的大规模csv数据然后写入到sqlite数据库中,经过一番挣扎,有以下两点感受:
1.将数据库放在固态硬盘当中(众所周知)
2.在执行完所有的insert语句后,执行commit()提交,而不是insert一次,commit()一次。

接下来写简化版代码进行示意,
低效率例子:

for i in range(35000000):
	c.execute('''sql''')
	conn.commit()
conn.close()
#简化代码没有加入具体业务逻辑,但此种情况下处理一万条数据需要80s左右

高效率例子:

for i in range(35000000):
	c.execute('''sql''')
conn.commit()
conn.close()
#此种情况下8s一万条

insert完执行commit速度最少提升10倍左右!

你可能感兴趣的:(sqlite,数据库优化,数据处理,python)