题
一个如何去编写一个查询,选择的项目从2000 - 2010年在数据存储10000个对象的集合。
我知道,它可以像这样在GQL来完成:
select * from MyObject limit 10 offset 2000
按照文档,使用offset
的时发动机仍将取的所有行,仅不返回它们,从而使查询的方式执行与offset
的值线性对应。
有没有更好的办法?如使用伪ROWNUM
柱等人们可以在其它类型的数据存储的做。
解决方案
有没有办法有效地使用偏移页,除了缓存结果。你可以,但是,使用数据存储光标来实现分页使用“书签”类型的方法。
其他提示
除了使用游标你也可以使用一个排序的方法。例如:
SELECT * FROM MyObject ORDER BY field LIMIT 10;
用于第一10级的对象,然后在接下来的10个对象,等等。
SELECT * FROM MyObject WHERE field > largestFieldValueFromPreviousResult ORDER BY field LIMIT 10;
字段甚至可以是一个关键,如果你没有其他合适的领域。下面是一个更完整的示例:
不隶属于 StackOverflow