順序を最適化
映画IDと説明情報を照会し、テーマに従って並べ替え、シリアル番号50から始まる5つのデータを取り出します。
最適化されていないSQLステートメントは次のとおりです
select film_id,description from sakila.film order by title limit 50,5;
Order by Fieldを主キーインデックスとして、実行プランを確認すると、効率が大幅に向上します
select film_id,description from sakila.film order by film_id limit 50,5;
最適化の制限
数十億のデータの行から始めて、5つのレコードを取得するとします。このようにして、IO操作はますます大きくなるため、最後のクエリの主キーを記録し、次のクエリで使用する必要があります主キーフィルタリング。これにより、データ量が多い場合にスキャンするレコードが多すぎないようにします
select film_id,description from sakila.film where film_id >600 and film_id<=605 order by film_id limit 1,5;
この操作を見ると、何万ものデータから始めても、取得される行数はわずか5行です。
k
注:主キーは順番に連続して並べ替える必要があります。主キーに列がある場合は、データが5行未満のデータが表示されます。連続していない場合は、追加の列index_id列を作成して、データの列は自動的に増加し、インデックスを追加する必要があります