首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在拥有数百万条记录的SQLite中高效分页

在拥有数百万条记录的SQLite中高效分页
EN

Stack Overflow用户
提问于 2013-01-23 05:44:27
回答 1查看 46.3K关注 0票数 112

我需要在列表视图中显示SQLite结果。当然,我需要对结果进行分页。

第一个选项是使用LIMIT子句。例如:

代码语言:javascript
复制
SELECT * FROM Table LIMIT 100, 5000

它返回记录5001到5100。问题是,SQLite在内部“读取”前5000条记录,效率不是很高。

当有很多记录时,最好的分页方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-23 06:03:00

请注意,您必须始终使用ORDER BY子句;否则,顺序是任意的。

要进行有效的分页,请保存排序字段的第一个/最后一个显示值,并在显示下一页时紧接着这些值继续:

代码语言:javascript
复制
SELECT *
FROM MyTable
WHERE SomeColumn > LastValue
ORDER BY SomeColumn
LIMIT 100;

(这将通过更详细的on the SQLite wiki进行解释。)

当您有多个排序列(以及SQLite 3.15或更高版本)时,您可以使用row value comparison来执行以下操作:

代码语言:javascript
复制
SELECT *
FROM MyTable
WHERE (SomeColumn, OtherColumn) > (LastSome, LastOther)
ORDER BY SomeColumn, OtherColumn
LIMIT 100;
票数 131
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14468586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档