"High Performance MySQL 2nd Edition" の "Optimizing Sorts" セクションを読んでいると、次のことを理解するのが難しいと思います。
mysql> SELECT FROM プロファイル WHERE sex='M' ORDER BY rating LIMIT 100000, 10;
このようなクエリは、インデックスがどのように作成されていても深刻な問題になる可能性があります。オフセットが大きいと、ほとんどの時間を大量のデータのスキャンに費やす必要があり、その後破棄されるからです。
...
このようなクエリを最適化するためのもう 1 つの優れた戦略は、カバリング インデックスを使用して、最終的に取得する行の主キー列だけを取得することです。...効率的に機能するために(性別、評価)のインデックスが必要な例を次に示します。mysql>SELECT (列) FROM プロファイル INNER JOIN (
-> SELECT (主キー列) FROM プロファイル
-> WHERE x.sex='M' ORDER BY rating LIMIT 100000, 10
->) AS x USING(主キー列);
私の質問は、最初のクエリが (性別評価) インデックスを利用して行 100000-100010 を見つけることができない場合、2 番目のクエリはどのように行うのでしょうか?