我有以下类来存储数据:
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
)。
就我而言,有什么方法可以优化阅读吗?