我在想,在Django中进行批量创建时,最佳的批处理大小是多少。我不知道确切的数据数量。可能是百万或者千万。我该如何决定最佳的批处理大小呢?
bulk_update
的实现中,给定的对象列表被分成批次,然后为每个批次创建插入语句。然后在数据库上执行这些插入语句。因此,批处理的执行由数据库处理。如果batch_size
对于您的数据库配置来说太大,您可能会遇到性能问题甚至错误。根据文档,默认情况下它尝试执行一次查询 - 在大多数情况下这是最快的更新方式。“最优”批处理大小取决于各种因素:从数据库类型及其限制,到服务器性能,网络(延迟)以及您的代码(例如,您对对象进行了多少更改)。
如果这是新项目或您没有注意到任何更新问题,我建议使用默认设置。