繁体   English   中英

Google App Engine NDB查询和超出的内存

[英]Google App Engine NDB Queries and exceeding memory

我有一个名为“ Obj”的Google App Engine数据存储,其生产中的实体接近50万。 我正在尝试仅查询50个Obj实体,但是即使将limit参数设置为50,查询最终仍会引发错误“超出软私有内存限制”。

这是否与查询中使用ndb.GenericProperty有关? 属性“ trashed_date”是日期时间类型,通常不是Obj的属性。 我还手动为status和rashed_date创建了正确的索引。 应该“ trashed_date”始终是该模型的属性吗?

以下是我正在使用的代码,仅查询50个不超过内存限制的实体时该怎么办?

q = Obj.query(
    Obj.status == 1,
    ndb.GenericProperty('trashed_date') < expire_date
)
results = q.fetch(50)

请尝试使用q.iter()和一个计数器将其限制为50。我对fetch()有类似的问题,并使用iter()进行了修复。 GAE强烈建议您不要立即获取。 YMMV。 HTH。 -stevep

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM