高效的查询策略:密钥只在appengine中查询+ memcache?

时间:2011-09-14 17:55:09

标签: google-app-engine memcached google-cloud-datastore

我目前通过memcache中的密钥缓存我的appengine数据存储区中的所有实体。

我是否更有效率地将所有查询作为KEY ONLY查询,然后从memcache获取实际实体?显然,批量获取缓存中缺少的实体。通常,从返回整个实体的数据存储区执行简单查询会更有效。

3 个答案:

答案 0 :(得分:4)

是。它更快,更便宜。

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

  
      
  • 每100k操作的读取操作(查询,实体提取)将花费 $ 0.07
  •   
  • 小型操作(Key Fetch,Id Allocation)每100k操作的成本 $ 0.01
  •   

答案 1 :(得分:4)

这样做可能会稍微便宜一些,但由于您可能不得不至少获取一个memcache中缺少的实体,因此使用此方法不会节省太多时间。一个更好的解决方案是将查询结果存储在memcache中,这样您就可以使用单个memcache get获取结果集。

答案 2 :(得分:2)

是的,仅限密钥的查询更便宜,因为它们只需从索引中读取。

如果您要在memcache中存储实体,请务必先serialize them to protobufs