如何编写一个查询,从数据存储的10000个对象中选择2000-2010个项目。
我知道在GQL中可以这样做:
select * from MyObject limit 10 offset 2000
根据文档,当使用
offset
时,引擎仍会获取所有行,只是不返回它们,因此使查询的性能与offset
的值呈线性对应关系。
有没有更好的方法?例如使用伪ROWNUM
列,就像在其他类型的数据存储中一样。
如何编写一个查询,从数据存储的10000个对象中选择2000-2010个项目。
我知道在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;
如果没有其他合适的字段,Field甚至可以成为一个键。以下是一个更完整的示例: