SQLite の結果をリスト ビューで表示する必要があります。もちろん、結果をページングする必要があります。
最初のオプションは、LIMIT 句を使用することです。例えば:
SELECT * FROM Table LIMIT 100, 5000
レコード 5001 から 5100 を返します。問題は、SQLite が内部的に最初の 5000 レコードを「読み取る」ことであり、あまり効率的ではありません。
レコードが多い場合のページングの最適な方法は何ですか?
SQLite の結果をリスト ビューで表示する必要があります。もちろん、結果をページングする必要があります。
最初のオプションは、LIMIT 句を使用することです。例えば:
SELECT * FROM Table LIMIT 100, 5000
レコード 5001 から 5100 を返します。問題は、SQLite が内部的に最初の 5000 レコードを「読み取る」ことであり、あまり効率的ではありません。
レコードが多い場合のページングの最適な方法は何ですか?
ORDER BY
常に句を使用する必要があることに注意してください。それ以外の場合、順序は任意です。
効率的なページングを行うには、順序付けされたフィールドの最初/最後に表示された値を保存し、次のページを表示するときにそれらの直後に続行します。
SELECT *
FROM MyTable
WHERE SomeColumn > LastValue
ORDER BY SomeColumn
LIMIT 100;
(これについては、SQLite wiki で詳しく説明されています。)
複数の並べ替え列 (および SQLite 3.15 以降) がある場合は、行の値の比較を使用できます。
SELECT *
FROM MyTable
WHERE (SomeColumn, OtherColumn) > (LastSome, LastOther)
ORDER BY SomeColumn, OtherColumn
LIMIT 100;