これが私がこれを処理する方法です。フェッチする最初のページには、
を使用します。SELECT id, col, col, col
FROM output
ORDER BY id DESC
LIMIT 10000
次に、クライアントプログラム(node.js)でid
をキャプチャします 結果セットの最後の行の値。次のページが必要なときは、これを行います。
SELECT id, col, col, col
FROM output
WHERE id < my_captured_id_value
ORDER BY id DESC
これはインデックスを悪用します。また、テーブルからいくつかの行を削除した場合でも、正しく機能します。
ちなみに、最初のページ付けページのIDが最大の場合は、降順のインデックスが必要になる可能性があります。 CREATE UNIQUE INDEX index_id ON output USING btree (ID DESC)
。
プロのヒント SELECT *
大規模なデータベースのパフォーマンスに悪影響を及ぼします。実際に必要な列を常にリストしてください。