Google App Engine:阅读数据的时间越来越长

时间:2013-10-21 06:17:21

标签: python performance google-app-engine

我正在使用GAE来运行一个宠物项目。

我有一个大表(100K行),我正在运行索引查询。这看起来很好。但是,迭代结果似乎需要非线性时间。做一些分析,似乎对于第一批行(100左右)它是线性的,但然后从悬崖上掉下来并开始花费越来越多的时间来检索到达行。这是代码草图:

q = Metrics.all()
q.filter('Tag =', 'All')
q.order('-created')    
iterator = q.run(limit = 100)
l = []
for i in iterator:
    l.append[i.created]

知道什么可能导致这种行为非线性吗?

2 个答案:

答案 0 :(得分:1)

最有可能的原因是你没有使用Query Cursors,而是使用它们,你会看到你的表现得到改善。

此外看起来您正在使用旧数据库,请考虑切换到NDB,因为最新的实现假设更好更快。

答案 1 :(得分:0)

如果您知道要处理的确切数字,请考虑使用fetch。 run会以较小的块(默认批量大小为20)获取结果,然后会有额外的往返操作。

OOT:可能很好重命名列表变量,它与python list函数同名:)