1

こんにちは、エンティティを含むテーブルがあります。ID はシーケンスから生成されます

テーブルに 2mio を超えるエントリがあり、すべての要素をページングしたいと考えています。しかし

LIMIT 100 OFFSET 2000000

私には遅すぎるので、2つの異なるステートメント(疑似コード)を試しました

int i = 0;    
while(true) {
    a: SELECT * FROM entity WHERE id>=i ORDER BY id LIMIT 100 
    b: SELECT * FROM (SELECT * FROM entity ORDER BY id)a WHERE id>=i  LIMIT 100 
    i=<id of last fetched row>;
}

両方のクエリは高速で、正しい結果を示しているようです...しかし、常に機能するとは限らないという予感があります...何かアイデアはありますか? そして、注文はまったく必要ですか?

4

1 に答える 1