gpt4 book ai didi

python - 加速 CSV 更新/导入 Django 模型

转载 作者:行者123 更新时间:2023-11-29 05:29:52 25 4
gpt4 key购买 nike

我有一个大型 CSV 文件,我正在将其导入 Django。目前,如果我的计算正确,将在 32 小时内完成!是否可以加快速度?

我有一个包含约 157,000 行和 15 列的 CSV 文件。我正在将其读入我的 Django 模型并将其保存到 MySQL 数据库中。神奇的地方就在这里:

reader = csv.reader(csvFile, delimiter=',', quotechar='"')
for row in reader:
tmpRecord = Employee(
emp_id = row[0], # Primary Key
name = row[1],
# snipped for brevity; other columns assigned
group_abbr = row[14]
)

pieces = string.split(tmpRecord.name.title(), " ")
newName = pieces[1]
try:
newName += " " + pieces[2]
except IndexError:
pass
newName += " " + pieces[0]
tmpRecord.name = newName

tmpRecord.save()

“pieces” block 从“LASTNAME FIRSTNAME MIDDLE”获取名称字段并将其转换为“Firstname Middle Lastname”。

这将大约每月运行一次,以使用新员工和对现有员工记录的任何更改更新数据库。大多数时候,现有记录不会更改,但任何一个(或多个)字段可能会更改。有没有我可以添加的检查,它比在每条记录上调用 save() 花费的时间更少?

目前,每 20 条记录大约需要 15 秒才能完成!有什么方法可以(显着)加快速度吗?

更新:

如果重要的话,emp_id 是表的主键。任何员工都不会拥有与前任员工相同的 ID(包括退休员工)。

最佳答案

我认为 bulk_create 会对你有所帮助 https://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.bulk_create

如果您对已经存在于数据库中的数据有疑问。插入其他表,然后使用 SQL 查询解决您的问题。

关于python - 加速 CSV 更新/导入 Django 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15934482/

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