【发布时间】:2011-04-05 13:16:33
【问题描述】:
目前,要确定是否存在下一页实体,我使用以下代码:
q = Entity.all().fetch(10)
cursor = q.cursor()
extra = q.fetch(1)
has_next_page = False
if extra:
has_next_page = True
但是,就执行“额外”查询所需的时间而言,这是非常昂贵的。我需要在10个结果后提取光标,但我需要取11个看看是否有后续页面。
谁有更好的方法?
【问题讨论】:
-
数据存储 API 缓存结果,我不记得了吗?如果是这样,可能会获取 11,检查计数,然后从新查询中获取 10 以获取游标。如果第一次提取的结果被缓存,那么第二次提取就会很便宜。
-
我不这么认为。我会检查的。
-
不,我也不认为是这样。我想你可以回到非光标技巧:记录你排序依据的第 11 个实体的值,然后在下一页上对其进行 >= 过滤。特别是。如果多个实体不可能具有该字段的相同值。
标签: python database google-app-engine scalability google-cloud-datastore