微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Django cursor.executemany 每个“executemany”的首选批处理大小是多少

如何解决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 举报,一经查实,本站将立刻删除。