Python django shell、django rest框架序列化程序和cassandra中的内存泄漏

Python django shell、django rest框架序列化程序和cassandra中的内存泄漏,python,django,cassandra,Python,Django,Cassandra,我有一个像这样的django cassandra模型: class Milad(DjangoCassandraModel): name = columns.Text(primary_key=True) bulkid = columns.BigInt(primary_key=True) f1 = columns.UUID() f2 = columns.UUID() f3 = columns.UUID() f4 = columns.UUID() f5 = columns.UUID() f6 = co

我有一个像这样的django cassandra模型:

class Milad(DjangoCassandraModel):
name = columns.Text(primary_key=True)
bulkid = columns.BigInt(primary_key=True)
f1 = columns.UUID()
f2 = columns.UUID()
f3 = columns.UUID()
f4 = columns.UUID()
f5 = columns.UUID()
f6 = columns.UUID()
f7 = columns.UUID()
f8 = columns.UUID()
f9 = columns.UUID()
f10 = columns.UUID()

class Meta:
    get_pk_field = "bulkid"
和以下序列化程序:

from rest_framework import serializers

class BulkidSerializer(serializers.Serializer):
    bulkid = serializers.IntegerField()

    def to_representation(self, instance):
        return instance.bulkid
我的桌子上有220200张唱片。 当我用命令
python3 manage.py shell打开django shell时
a执行以下操作我的内存使用率从8.8GB变为10.8GB

操作:

records = Milad.objects.all().limit(None)
data = BulkidSerializer(records, many=True).data
当我使用
sys.getsizeof(data)
对象的大小约为2MB,但在没有运行任何操作时,我的内存仍为10.8,并且在关闭外壳之前,内存中没有具有该大小的数据。
有什么问题吗?

在内存中一次具体化所有结果将导致内存使用量激增。Python运行时扩展内存而不立即将其返回操作系统的情况并不少见。除非您遇到资源限制,否则它不应该引起关注

如果要避免在内存中具体化所有结果,应该使用驱动程序提供的分页