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)

我的问题是,如果我有很多行要插入,例如100000行:

我应该插入一个查询吗。

或者调用具有固定步长的多次执行,例如1000。

我读了一些文章,建议用100。

我用100000条要插入的记录来测试我的代码。

一次处决比多次处决快。

我不知道该怎么办。不知道我是否错过了这里的理解。

请帮忙评论。谢谢

MySQL文档有助于详细说明这一点:

在大多数情况下,executemany((方法遍历参数序列,每次都将当前参数传递给execute((方法。

对插入应用优化:参数序列给定的数据值使用多行语法进行批处理。

最新更新