首页 > 解决方案 > 在 Peewee 中禁用缓存

问题描述

文档说 peewee 在选择操作时缓存数据。执行选择查询时有什么方法可以禁用缓存吗?

标签: pythonpeewee

解决方案


您可以在迭代大量行时使用调用返回iterator()的对象的方法,以避免结果被缓存在内存中。QueryResultWrapper.select()

来自关于迭代大型结果集的 peewee 文档

要在遍历查询时减少 peewee 使用的内存量,请使用 iterator() 方法。此方法允许您在不缓存返回的每个模型的情况下进行迭代,在迭代大型结果集时使用更少的内存。

# Let's assume we've got 10 million stat objects to dump to a csv file.
stats = Stat.select()

# Our imaginary serializer class
serializer = CSVSerializer()

# Loop over all the stats and serialize.
for stat in stats.iterator():
    serializer.serialize_object(stat)

推荐阅读