我有一个包含大约 1 亿条记录(数字)的 txt 文件。我正在用 Python 读取这个文件,并使用来自 python 的简单插入语句将它插入到 MySQL 数据库中。但它花了很长时间,看起来剧本永远不会完成。执行此过程的最佳方式是什么?该脚本使用不到 1% 的内存和 10% 到 15% 的 CPU。
对于处理如此大的数据并将其高效地插入数据库的任何建议,我们将不胜感激。
谢谢。
最佳答案
向表中插入行的最快方法是使用 LOAD DATA INFILE
语句。
引用:https://dev.mysql.com/doc/refman/5.6/en/load-data.html
执行单个 INSERT
语句以一次插入一行,RBAR(逐行痛苦)非常缓慢,因为数据库必须执行所有工作执行一条语句...语法分析、语义分析、准备执行计划、获取和释放锁、写入二进制日志...
如果你必须执行 INSERT 语句,那么你可以使用 MySQL 多行插入,那样会更快。
INSERT INTO mytable (fee, fi, fo, fum) VALUES
(1,2,3,'shoe')
,(4,5,6,'sock')
,(7,8,9,'boot')
如果一次插入四行,则需要执行的语句数量会减少 75%。
关于python - 使用 Python 将数百万条记录插入 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30928713/