我试图通过执行一次删除超过 20,000,000 个对象:
MyModel.objects.filter(some_field__lt=100).delete()
但我不能,因为没有足够的内存(1GB VPS)。这是不好的方法还是什么?怎么做?
我试图通过执行一次删除超过 20,000,000 个对象:
MyModel.objects.filter(some_field__lt=100).delete()
但我不能,因为没有足够的内存(1GB VPS)。这是不好的方法还是什么?怎么做?
在这种情况下,我认为最好使用原始 sql 查询https://docs.djangoproject.com/en/dev/topics/db/sql/#executing-custom-sql-directly
cursor.execute("DELETE FROM mymodel WHERE some_field < %s", [value])
尝试限制正在选择的内容MyModel.objects.filter(some_field__lt=100).only('id').delete()
或者如果需要获取查询并在 django 之外执行查询
MyModel.objects.filter(some_field__lt=100).query