Django 的 bulk_create 在使用 Oracle 时速度缓慢

2015-07-03 08:55:15 +08:00
 restran
Django 的 bulk_create 可以用一条 SQL 一次批量插入任意多的数据,可以用来做高效的数据插入。

https://docs.djangoproject.com/en/1.8/ref/models/querysets/


在 MySQL 和 SQLite 下测试时,使用 bulk_create 都很快,保存3千条数据,零点几秒就完成了(就几个字段,所以很快),但是在Oracle下,就变得非常慢,要慢上几十倍,甚至比循环调用save函数都来得慢。

把 bulk_create 编译出来的 SQL 直接在 PL/SQL Developer 中运行,只要1秒多,速度也是很快,把SQL 直接用 raw 的方式运行,速度也是很快。说明 Django 编译出来的 SQL 是没有问题的。

那么问题来了,bulk_create 到底是什么原因导致 Oracle 下会这么慢呢?
2422 次点击
所在节点    Python
1 条回复
robinshi2010
2015-07-03 11:06:47 +08:00
这个问题确实很神奇,前排学习.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/202954

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX