![](/img/trans.png)
[英]Most efficient way to batch update a peewee database from a pandas dataframe
[英]Fastest and most memory efficient way to select() data with Peewee?
Peewee的有关遍历许多行的文档目前描述了两种可用的优化方法。
第一个select.iterator()
选项似乎是内存优化。
第二个选项建议使用dicts()
, namedtuples()
, objects()
或tuples()
调用select
是一种速度优化,因为它避免了Peewee不得不重建模型图。
我的问题:
dicts()
会为大型结果集返回大量的字典,因此内存效率不高。 是文档底部的那个寂寞的小代码示例我的答案吗?
for stat in stats.objects().iterator():
serializer.serialize_object(stat)
它们不是互斥的,可以合并。 文档中的示例显示了将“ objects()”(使用平面模型实例,如果您要重构多个模型,则很快)和“ iterator()”(有助于减少内存使用)的组合。
您可以轻松地编写:
for stat in stats.tuples().iterator():
# whatever
如果只想使用普通的数据库游标,则可以编写:
stats = Stat.select().etc()
cursor = database.execute(stats)
for row_tuple in cursor:
# do whatever
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.