我似乎记得在某处读取谷歌应用引擎会自动将非常频繁的查询结果缓存到内存中,以便更快地检索它们。
这是对的吗?
如果是这样,对这些查询的数据存储读取是否仍有收费?
答案 0 :(得分:5)
如果您正在使用Python和新的ndb API,它会自动缓存实体,因此如果您按键获取实体,它将被缓存:
http://code.google.com/appengine/docs/python/ndb/cache.html
正如评论所说,查询不会被缓存。 缓存请求不会访问数据存储区,因此您可以在那里保存读取。
如果您正在使用Java或其他API访问数据存储区,那么不,没有缓存。
已编辑修复了有关缓存查询的错误。
答案 1 :(得分:1)
我认为应用引擎不会为您缓存任何内容。虽然它可能是内部的,它会暂时缓存一些东西,但我认为你不应该依赖它。
我认为您将从每次查询中读取的每个实体收取正常的读取操作数。
答案 2 :(得分:1)
不,它没有。但是,根据您用于访问数据存储区的框架,将使用memcache。你在java或python中开发?在java方面,Objectify将自动缓存GET而不是查询。请记住,python和java中的gets和query之间在性能和可兼容性方面存在很大差异。
对于内存缓存命中数据存储区读取,您不需要付费。