2012-04-23 1 views
0

Какой подход приводит к менее Google App хитами хранилища данных Двигатель:выборки против ГЭТ) датастора цен (на Google App Engine

  1. один dataobject.fetch (предел = 10) ИЛИ
  2. dataobject.get () повторяется 10 раз.
+0

Вы имеете в виду "query.fetch (10)" vs "db.get (key) x 10"? – Albert

+0

Нет, я хочу вернуть всю сущность в обоих случаях. И по той же ссылке, похоже, что get() стоит меньше, чем fetch(). – Andrew

ответ

2

В (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 микронаселений.