我使用以下代码对扩展的"insert into“进行批量插入。
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。
我用要插入的10万条记录来测试我的代码。
一次执行比多次执行要快。
我不知道该怎么办。不知道我是不是错过了这里的一些东西。
请发表意见。谢谢。
发布于 2021-01-08 06:18:07
MySQL文档有助于详细说明这一点:
在大多数情况下,executemany()方法迭代参数序列,每次都将当前参数传递给execute()方法。对插入进行了优化:参数序列给出的数据值是使用多行语法批处理的。
https://stackoverflow.com/questions/65624087
复制相似问题