【发布时间】:2013-11-11 07:07:21
【问题描述】:
我有以下类来存储数据:
class AppList(ndb.Model):
'''
Index
Key: sender
'''
sender = ndb.StringProperty()
texts = ndb.StringProperty(repeated=True)
recipients = ndb.StringProperty(repeated=True)
service_centers = ndb.StringProperty(repeated=True)
counter = ndb.IntegerProperty(default=0)
ignore = ndb.BooleanProperty(default=False)
added = ndb.DateTimeProperty(auto_now_add=True, indexed=False)
updated = ndb.DateTimeProperty(auto_now=True, indexed=False)
目前它包含大约 4`000 条记录。
当我尝试在循环中使用以下代码读取它时:
entries = AppList.query()
res, cur, more = entries.fetch_page(100, start_cursor=cur)
它以OverQuotaError(The API call datastore_v3.RunQuery() required more quota than is available.) 失败。免费配额为 05 万次操作。看起来它是由于多个 repeated 属性而发生的。但我读取所有值的唯一任务是将 False 值分配给每条记录的 ignore 属性 (entry.ignore = False)。
在我的情况下,有什么方法可以优化阅读吗?
【问题讨论】:
标签: google-app-engine app-engine-ndb