MySQLの最適化の制限と順序

 

順序を最適化

 

映画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列を作成して、データの列は自動的に増加し、インデックスを追加する必要があります

568の元の記事を公開 180の賞賛 180,000ビュー

おすすめ

転載: blog.csdn.net/Delicious_Life/article/details/105609778