Какой подход приводит к менее Google App хитами хранилища данных Двигатель:выборки против ГЭТ) датастора цен (на Google App Engine
- один dataobject.fetch (предел = 10) ИЛИ
- dataobject.get () повторяется 10 раз.
Какой подход приводит к менее Google App хитами хранилища данных Двигатель:выборки против ГЭТ) датастора цен (на Google App Engine
db.get()
стоит менее чем query.fetch(limit)
.
https://developers.google.com/appengine/docs/billing#Billable_Resource_Unit_Costs
В (1): 1 х QUERY + 10 х G (по одному в каждую запись извлечённой) = 11 операций чтения = 11 х 60 = 660 micropennies
В (2): 10 х GET = 10 READ operations = 10 x 60 = 600 micropennis
Ваш самый дешевый вариант - фактически запросить и получить только «ключи» для записей. Это будет работать, если вы не хотите получать данные для каждой записи, которую вы выбираете:
Cheapest: Query (keys_only = True): 1 x QUERY + 10 x SMALL_GET = 1 READ + 10 SMALL = 60 + 10 * 10 = 160 микронаселений.
Обратите внимание, что самый дешевый будет стоить дороже, если вы перейдете по клавишам, которые вы получили, и снова запросите данные. В этом случае накладные расходы будут составлять 10x10 = 100 микронаселений.
Вы имеете в виду "query.fetch (10)" vs "db.get (key) x 10"? – Albert
Нет, я хочу вернуть всю сущность в обоих случаях. И по той же ссылке, похоже, что get() стоит меньше, чем fetch(). – Andrew