一个如何去编写一个查询,选择的项目从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;

字段甚至可以是一个关键,如果你没有其他合适的领域。下面是一个更完整的示例:

http://code.google.com/appengine/articles/paging.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top