gpt4 book ai didi

database - 为什么我的 Django 批量数据库填充如此缓慢且经常失败?

转载 作者:太空狗 更新时间:2023-10-30 01:55:42 27 4
gpt4 key购买 nike

我决定使用 django 的模型系统而不是编写原始 SQL 来与我的数据库交互,但我遇到了一个肯定可以避免的问题。

我的 models.py 包含:

class Student(models.Model):
student_id = models.IntegerField(unique = True)
form = models.CharField(max_length = 10)
preferred = models.CharField(max_length = 70)
surname = models.CharField(max_length = 70)

我通过循环遍历列表来填充它,如下所示:

from models import Student

for id, frm, pref, sname in large_list_of_data:
s = Student(student_id = id, form = frm, preferred = pref, surname = sname)
s.save()

我真的不想每次都将它保存到数据库中,但我不知道另一种让 django 不忘记它的方法(我宁愿添加所有行然后进行一次提交) .

目前的代码存在两个问题。

  1. 速度很慢 -- 每秒大约有 20 名学生获得更新。

  2. 它甚至没有通过 large_list_of_data,而是抛出一个 DatabaseError 说“无法打开数据库文件”。 (可能是因为我使用的是 sqlite3。)

我的问题是:我怎样才能阻止这两件事发生?我猜这两个问题的根源是我有 s.save() 但我没有看到一种方法可以轻松地对学生进行批处理,然后将它们保存在对数据库的一次提交中。

最佳答案

所以看来我应该在提出问题之前更仔细地看一下。

描述了一些解决方案in this stackoverflow question (获胜的答案是使用 django.db.transaction.commit_manually)和 in this one关于汇总保存。

加速此类操作的其他想法在 this stackoverflow question 中列出。 .

关于database - 为什么我的 Django 批量数据库填充如此缓慢且经常失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4688018/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com