在数百万条logging中有效地分页SQLite
我需要在列表视图中显示SQLite结果。 当然,我需要分页的结果。
第一个选项是使用LIMIT子句。 例如:
SELECT * FROM Table LIMIT 100, 5000 它返回logging5001到5100.问题是内部SQLite“读取”前5000个logging,并不是太高效。
有很多logging时,寻呼的最佳方法是什么?
 请注意,您总是必须使用ORDER BY子句; 否则,你只是得到一些随机的顺序。 
要进行高效分页,请保存有序字段的第一个/最后一个显示值,并在显示下一页时继续:
 SELECT * FROM MyTable WHERE SomeColumn > LastValue ORDER BY SomeColumn LIMIT 100; 
(这在SQLite wiki上有更详细的解释。)
当你有多个sorting列(和SQLite 3.15或更高版本),你可以使用这个行值比较 :
 SELECT * FROM MyTable WHERE (SomeColumn, OtherColumn) > (LastSome, LastOther) ORDER BY SomeColumn, OtherColumn LIMIT 100;