【发布时间】:2010-11-11 06:55:48
【问题描述】:
我必须使用 Django 的 ORM 将 8000 多条记录插入 SQLite 数据库。此操作需要作为 cronjob 大约每分钟运行一次。
目前我正在使用 for 循环遍历所有项目,然后将它们一一插入。
示例:
for item in items:
entry = Entry(a1=item.a1, a2=item.a2)
entry.save()
这样做的有效方法是什么?
编辑:两种插入方式的小对比。
没有 commit_manually 装饰器(11245 条记录):
nox@noxdevel marinetraffic]$ time python manage.py insrec
real 1m50.288s
user 0m6.710s
sys 0m23.445s
使用 commit_manually 装饰器(11245 条记录):
[nox@noxdevel marinetraffic]$ time python manage.py insrec
real 0m18.464s
user 0m5.433s
sys 0m10.163s
注意:除了插入数据库之外,test 脚本还执行一些其他操作(下载 ZIP 文件,从 ZIP 存档中提取 XML 文件,解析 XML文件),因此执行所需的时间并不一定代表插入记录所需的时间。
【问题讨论】:
标签: python sql django sqlite insert