MySQLでテーブルのカバーインデックスを作成する標準的な順序はありますか?つまり、where句、order by、およびselectステートメントのフィールドを持つクエリがある場合、カバーするインデックスを適切に作成するために、インデックスへのフィールドはどのような順序で使用されますか?
1211 次
2 に答える
3
カバーインデックスは、コンマ区切りのリスト内の列のリストを取ります。このリストは、左側からトラバース/レビューされます。左端の列が使用されていない場合、インデックスは使用されません。つまり、次のような列リストがあります。
col_a, col_b, col_c
クエリにへの参照が含まれていない場合、そのクエリはcol_a
使用されません。順序が次のように変更された場合:
col_c, col_b, col_a
...次にcol_c
、クエリで参照する必要があります。2番目のカバーインデックス列の例を引き続き使用するcol_b
かcol_a
、クエリに含める必要はありませんが、評価では列ごとに左から右に移動します。
インデックスを使用するための列参照は、次の句に含めることができます。
- 選択する
- どこ
- GROUP BY
- 持っている
- 注文者
参照:
于 2011-01-26T00:20:03.147 に答える
1
MySQLは、他の列に値を指定しなくても、WHERE句でインデックスの最初の列に既知の数量を指定すると、クエリが高速になるように複数列のインデックスを使用します。
リンク先のページの例では、インデックスの最初の列に値を指定しない場合、インデックスは使用されないことも示されています。
于 2011-01-26T00:20:09.970 に答える