データを保存するための次のクラスがあります。
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.)
ます。無料クォータは 0.05 ミリオン Ops です。複数のrepeated
プロパティが原因で発生するようです。ignore
しかし、すべての値を読み取る唯一のタスクは、各レコードのプロパティに False 値を割り当てることです( entry.ignore = False
)。
私の場合、読み取りを最適化する方法はありますか?