Эффективная стратегия запросов: только ключи запрашивают + memcache в appengine? - PullRequest
4 голосов
/ 14 сентября 2011

В настоящее время я кэширую все свои сущности в моем хранилище данных appengine по ключу в memcache.

Разве мне эффективнее выполнять все мои запросы как запросы KEY ONLY, а затем получать реальные сущности из memcache? Очевидно, что выполняя пакет, получить на объекты, которые отсутствуют в кэше. В целом это более эффективно, чем выполнение простого запроса из хранилища данных, который возвращает всю сущность.

Ответы [ 3 ]

4 голосов
/ 15 сентября 2011

Это может быть немного дешевле, но, поскольку вам, вероятно, придется выбрать хотя бы одну сущность, отсутствующую в memcache, вы не сэкономите много времени с этим подходом.Гораздо лучшим решением является сохранение результата запроса в memcache, чтобы вы могли получить набор результатов с помощью одного getcache get.

4 голосов
/ 14 сентября 2011

Да.Это быстрее и дешевле.

http://code.google.com/appengine/kb/postpreviewpricing.html#operations_charged_for

  • Операции чтения (Query, Entity Fetch) будут стоить $ 0,07 за 100 000 операций.
  • Небольшие операции (Key Fetch, Id Allocation) будут стоить 0,01 за 100 000 операций.
2 голосов
/ 14 сентября 2011

Да, запросы только на ключ дешевле, потому что они должны только читать из индекса.

Если вы храните сущности в memcache, сначала сериализуйте их в protobufs .

...