gpt4 book ai didi

python - Django - bulk_create() 导致内存错误

转载 作者:太空狗 更新时间:2023-10-30 01:41:31 24 4
gpt4 key购买 nike

我有大约 400 000 个对象实例要插入到 postgres 中。我正在使用 bulk_create() 这样做,但遇到内存错误。

我的第一个想法是对实例列表进行分块:

def chunks(l, n):
n = max(1, n)
return [l[i:i + n] for i in range(0, len(l), n)]

for c in chunks(instances, 1000):
Feature.objects.bulk_create(c)

但有时该策略也会导致内存错误,因为实例的大小可能变化很大,因此一个 block 可能会超出内存限制,而其他 block 则不会。

是否可以对实例列表进行分块,以便拥有分隔大小的 block ?在这种情况下,最好的方法是什么?

最佳答案

如果您在 Debug模式下使用 Django,它将跟踪您所有的 sql 语句以进行调试。对于许多对象,这可能会导致内存问题。您可以通过以下方式重置它:

from django import db
db.reset_queries()

参见 why-is-django-leaking-memory

关于python - Django - bulk_create() 导致内存错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29082693/

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