我正在使用 Django 1.6 和 postgres,特定表上的bulk_create 会锁定整个表吗? (在我的例子中,我批量创建 10,000 行,需要大约 10 秒)我已经在批量创建发生时每半秒创建一次对象时对此进行了测试,并且这些单独的创建都没有挂起,但我只想制作当然。谢谢!
最佳答案
bulk_create
以高效的方式将提供的对象列表插入数据库(通常只有 1 个查询,无论有多少个对象),因此它会阻止表执行原子操作交易。
用法:bulk_create(obj_list, batch_size=None)
batch_size
参数控制在单个查询中创建的对象数量。默认情况下是在一批中创建所有对象,但 SQLite 除外,默认情况下每个查询最多使用 999 个变量。
以下article还可以让您了解 bulk_create 相对于其他方法的速度有多快。
关于django - Django的bulk_create在插入行时会锁定整个表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34410110/