我正在使用 GAE 来运行一个宠物项目。
我有一个大表(10 万行),我正在对其运行索引查询。这似乎很好。但是,遍历结果似乎需要非线性时间。做一些分析,似乎对于第一批行(100 左右)它是线性的,但随后从悬崖上掉下来并开始花费越来越多的时间来检索 reach 行。这是代码草图:
q = Metrics.all()
q.filter('Tag =', 'All')
q.order('-created')
iterator = q.run(limit = 100)
l = []
for i in iterator:
l.append[i.created]
知道是什么导致了它的非线性行为吗?
请您参考如下方法:
很可能是因为您没有使用 Query Cursors ,改用它们,您会发现性能有所提高。
而且看起来您正在使用旧数据库,考虑切换到 NDB ,因为最新的实现应该更好更快。
