我在我的Google AppEngine应用程序中有一个性能不佳的查询。这就是我要做的:
import models
from time import time
parent = models.ParentEntity.gql("WHERE string_property = :1", "a guid").get()
start = time()
data_rows = []
children = models.ChildEntity.gql("WHERE ANCESTOR IS :1", parent.key())
for child in children.run():
data_rows.append(child.data)
print "Loaded %s rows in: %s" % (len(data_rows), time() - start)我在我的机器上的交互式控制台中运行了三次,以下是输出:
Loaded 653 rows in: 8.18052411079
Loaded 653 rows in: 5.93607997894
Loaded 653 rows in: 9.974867105485-9秒加载653行是正常的吗?这是在dev web服务器上的,在真实的服务器上会更好吗?我知道memcache并且已经在使用它了,但是我如何才能在我确实需要填充缓存的时候让事情进行得更快呢?
发布于 2012-12-07 19:08:15
您不应该将dev服务器视为实时服务器上的任何性能指标。它使用平面文件或sqlite3数据库模拟BigTable基础设施,因此性能相当糟糕。正确测试这一点的唯一方法是在AppEngine本身上。
请注意,祖先查询的效率与它所获得的一样高,因此当您在生产中尝试它时,应该不会有任何问题。
https://stackoverflow.com/questions/13761578
复制相似问题