我使用Django 1.6和postgres,特定表上的bulk_create会锁定整个表吗? (在我的情况下,我是批量创建10,000行,大约需要10秒)我已经测试了这一点,同时每半秒创建一次对象,同时批量创建正在发生,并且没有一个人创建挂起,但我&#39 ; d只是想确定一下。谢谢!
答案 0 :(得分:1)
bulk_create
以有效的方式将提供的对象列表插入到数据库中(通常只有1个查询,无论有多少个对象),因此它会阻止表执行原子事务强>
用法:bulk_create(obj_list, batch_size=None)
batch_size
参数控制在单个查询中创建的对象数。默认情况下是在一个批处理中创建所有对象,但SQLite除外,其中默认情况下每个查询最多使用999个变量。
以下article还可以让您了解 bulk_create 与其他方法的相对速度有多快。