在bulk_create()
中,batch_size
的含义是什么?
我尝试了两个代码,
Person.objects.bulk_create([
Person (name='Tom', age='24', job='student', hobby='football'),
Person (name='Steve', age='33', job='doctor', hobby='movie'),
Person (name='Mike', age='55', job='professor', hobby='tennis'),
])
和
Person.objects.bulk_create([
Person (name='Tom', age='24', job='student', hobby='football'),
Person (name='Steve', age='33', job='doctor', hobby='movie'),
Person (name='Mike', age='55', job='professor', hobby='tennis'),
], batch_size=2)
在第二种情况下,我添加了batch_size
,但这两个代码没有差异。
batch_size
的含义是什么?如何使用此batch_size
?
答案 0 :(得分:0)
考虑到您要创建的对象列表大约为10000,并且如果您将批处理大小指定为100,则每100个对象将以批量创建的方式创建。对于较小的列表,您将看不到任何区别。但是对于较大的列表(例如,具有可变批次大小的10000多个)。
答案 1 :(得分:0)
batch_size
参数控制在单个查询中创建的对象数量。默认是批量创建所有对象,但 SQLite 除外,默认情况下每个查询最多使用 999 个变量。
例如,如果您要批量创建 100k 个对象并将 batch_size
设置为 1000,django 将执行 100 个查询来完成请求(每个查询创建 1000 个对象)。