Django cursor.executemany 每个 "executemany" 的首选批量大小是多少

Django cursor.executemany what's the preferred batch size for each "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 文档有助于详细说明:

In most cases, the executemany() method iterates through the sequence of parameters, each time passing the current parameters to the the execute() method.

An optimization is applied for inserts: The data values given by the parameter sequences are batched using multiple-row syntax.