如何解决Django cursor.executemany 每个“executemany”的首选批处理大小是多少
我使用以下代码通过扩展的“插入”进行批量插入。
cursor = connections['default'].cursor()
sql = "INSERT INTO %s (%s) VALUES ([xxx],[xxx],...) "
step = 1000
for l in range(0,len(values),step):
s_values = values[l:l+step]
cursor.executemany(sql,s_values)
我的问题是我是否有很多行要插入,例如 100,000:
或者以固定步长调用多个executemany,例如1000。
我看了一些文章,建议用100。
我用要插入的 100,000 条记录测试我的代码。
一次执行多次比多次执行快。
我不知道该怎么办。不知道我是否错过了在这里理解的东西。
请帮忙评论。谢谢。
解决方法
MySQL 文档有助于详细说明:
在大多数情况下,executemany() 方法遍历参数序列,每次将当前参数传递给 execute() 方法。
对插入应用了优化:使用多行语法对参数序列给出的数据值进行批处理。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。