インデックスをカバーするための適切なフィールド注文-MySQL
-
22-10-2019 - |
質問
MySQLのテーブルのカバーインデックスを作成する標準的な順序はありますか?意味のある句、順序付け、selectステートメントのフィールドがあるクエリがある場合、カバーインデックスを適切に作成するためのインデックスのフィールドはどのような順序でありますか?
解決
カバーインデックスには、コンマ分離リストの列のリストが表示されます。このリストは、左側から移動/レビューされています。左のほとんどの列が使用されていない場合、インデックスは使用されません。意味、次のような列リストがあります:
col_a, col_b, col_c
クエリには参照が含まれていない場合 col_a
, 、それは使用されません。注文が変更された場合:
col_c, col_b, col_a
...それから col_c
クエリで参照する必要があります。 2番目のカバーインデックス列の例を引き続き使用しています。 col_b
また col_a
クエリに入る必要はありませんが、評価は列ごとに左から右に移動します。
インデックス使用の列参照は、次の条項にあります。
- 選択する
- どこ
- グループby
- 持っている
- 注文
参照:
他のヒント
MySQL Optimization 7.5.2複数列インデックス 言う:
MySQLは、他の列の値を指定していなくても、句の最初の列の既知の数量をWhere句の最初の列の既知の数量を指定するときにクエリが高速になるように、複数列のインデックスを使用します。
リンクされたページの例は、インデックスは 使用されていない, 、インデックスの最初の列の値を指定しない場合。
所属していません StackOverflow