文章目录[显示] 优化INSERT语句 InnoDB表的批量数据加载 查询 插入 服务器性能 网络速度 最终的总结 很长时间之前我写过一篇《使用 Python 将海量 MySQL 数据导入 Elastic Search/MongoDB》,主要就说了如何把大量MySQL数据写入键值对数据库。 现在回过头看来这篇文章还是很有参考价值的。 有的时候我们会遇到相反的需求,比如说把对应的键值对数据库(或者说是json文件)导入(列数据类型相符)的MySQL表中。通常来说这不是个啥大问题,根据json提取出列,生成SQL语句就可以了。也就这么几行,然后execute加参数就可以了: placeholders = ', '.join(['%s'] * len(raw_dict)) columns = ', '.join(raw_dict.keys()) insert_sql = "INSERT INTO %s ( %s ) VALUES ( %s )" % (insert_table, columns, placeholders) 当然了你要是想直接生成能用的sql语句那我也没意见(并抛出一个🤨的表情) 大量插入数据的时候咋整呢? 首先我们…… 首先我们要知道,性能是由多方面因素决定的,比如说代码效率质量、Python性能、服务器性能(包含MySQL版本,编译优化,宿主机IO/CPU/RAM等)、表结构的设计、网络速度等,咱要找到短板才可以。为了找到短板,需要使用控制变量法,但是有些变量不可控,那就很不好办了…… 然后我需要送上MySQL官方文档两篇,说的非常详细了,我简单总结下 Optimizing INSERT Statements: https://dev.mysql.com/doc/refman/8.0/en/insert-optimization.html Bulk Data Loading …

Click here to see the full blog post