Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django,如何使用批量创建(objs,批量大小=无)_Python_Django - Fatal编程技术网

Python django,如何使用批量创建(objs,批量大小=无)

Python django,如何使用批量创建(objs,批量大小=无),python,django,Python,Django,在bulk\u create()中,batch\u 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='pr

bulk\u create()
中,
batch\u 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'),
    ])

在第二种情况下,我添加了
batch\u size
,但这两个代码没有差异


批量大小是什么意思?如何使用此批处理大小?

考虑到要创建的对象列表大约为10000个,如果指定批处理大小(如100个),则每100个对象将以批量创建的方式创建。对于较小的列表,您不会看到任何差异。但对于较大的列表(如10000多个)和可变批量大小。

请考虑要创建的对象列表大约为10000个,如果指定批量大小(如100个),则每100个对象将以批量创建的方式创建。对于较小的列表,您不会看到任何差异。但是对于较大的列表,如10000多个具有可变批量大小的列表。

批大小参数控制在单个查询中创建的对象数量。默认设置是在一个批中创建所有对象,SQLite除外,SQLite的默认设置是每个查询最多使用999个变量


例如,如果要执行100k对象的批量创建,并将
batch_size
设置为1000,django将执行100个查询以完成请求(每个查询创建1000个对象)。

参数
batch_size
控制在单个查询中创建多少对象。默认设置是在一个批中创建所有对象,SQLite除外,SQLite的默认设置是每个查询最多使用999个变量


例如,如果您要执行100k对象的批量创建,并将批大小设置为1000,django将执行100个查询以完成请求(每个查询创建1000个对象)。

您不清楚的是什么?我读过了。它说“批量大小”控制在单个查询中创建多少OBJ。所以我尝试了第二个代码,希望只创建两个OBJ。但是所有的OBJ都被创建了..什么?为什么只需要创建两个对象?您要求创建三个对象,即创建了多少个。它只需要两个查询就可以完成。我认为这意味着要成批地将它添加到这样大小的查询中。因此,它没有打一个电话来保存所有3条记录,而是打了2个电话,第一次保存了2条记录,第二次保存了剩余的一条哦,我明白了。谢谢(-):你不清楚怎么办?我读过了。它说“batch_size”控制在一个查询中创建了多少OBJ。所以我尝试了第二个代码,预期只创建了两个OBJ。但是所有OBJ都被创建了..什么?为什么你希望只创建两个对象?你要求了三个对象,即创建了多少个。只需要两个查询是的。我想这意味着要成批地将其放入这样大小的查询中。因此,它没有调用1次来保存所有3条记录,而是调用了2次,第一次保存了2条记录,第二次保存了剩余的一条记录。哦,我明白了。谢谢!!(:
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)