MySQLのテーブルのカバーリングインデックスを作成する標準的な手順はありますか?意味は、where句、order by、select文のフィールドを持つクエリがある場合、どのような順序でインデックスに適切にカバーインデックスを作成するのでしょうか?インデックスをカバーするための適切なフィールドオーダー - MySQL
2
A
答えて
3
カバーインデックスは、コンマ区切りのリストで列のリストを取ります。このリストは、左側からトラバース/レビューされます。左端の列が使用されない場合、索引は使用されません。以下のような列リストを持つ、意味:クエリがcol_a
への参照が含まれていません
col_a, col_b, col_c
場合、それは使用されません。順序がに変更された場合:
col_c, col_b, col_a
...その後col_c
は、クエリで参照する必要があります。 2番目のカバー索引列の例を引き続き使用すると、col_b
またはcol_a
は問合せに含める必要はありませんが、評価は列ごとに左から右に移動します。インデックスの使用のための参照は次の句にすることができ
コラム:
- WHERE
- GROUP
- BY
参照することにより
1
MySQL Optimization 7.5.2 Multiple-Column Indexes言う:
MySQLはWHERE内のインデックスの最初の列のための既知の量を指定すると、クエリが高速であるように、複数列索引を使用しています他の列の値を指定しなくても、この句を使用できます。リンク先のページの
たとえばあなたは、インデックスの最初の列の値を指定しない場合も、インデックスがを使用していないことを、述べています。
関連する問題
- 1. RavenDB - 適切なコレクションのためのインデックスを設定するLuceneQuery
- 2. 適切なインデックスが
- 3. インデックスを持つ配列を循環するための適切なPHP構文
- 4. 適切なクエリまたは適切な正規化:MySQL
- 5. 大規模なPostgreSQLテーブルでの検索のための適切なインデックス設定
- 6. ノードjs。接続を作成するための適切な/ベストプラクティス
- 7. Laravel 5 Validatorを適切にパッケージ化するための適切な方法
- 8. SQLite3で重複データを避けるためにインデックスをカバー
- 9. サーバサイドネットワーキングのための適切なJavaScriptフレームワーク?
- 10. レールアプリケーションのための適切なRESTfulルーティング?
- 11. アンドロイドのための適切なマルチタスキング
- 12. タイムドリダイレクトのための適切な方法
- 13. whileループのための適切なjavascript
- 14. 不適切なMySQL構文?
- 15. 適切なdbインデックスの選択
- 16. Pythonのデータフレーム - 適切な日付インデックス
- 17. インデックスされたアイテムをオブジェクトに追加するための適切なES6の方法は何ですか?
- 18. MySQLはユニークなインデックスを64文字に切り詰めました
- 19. Haskellのグローバルフラグを適切に扱うための適切な方法
- 20. ユーザーのセッションを維持するための適切なアプローチ
- 21. 他人のモジュールを編集するための適切なプロトコル
- 22. ライブラリをアップグレードするためのspecファイルの適切な定義
- 23. SwiftのCLLocationManagerを使用するための適切なコードデザイン
- 24. req内のフィールドをフィルタリングするための適切な方法
- 25. 辞書の値を適切なインデックスで更新する
- 26. MySQLインデックスの最適化
- 27. コンボボックスを更新するための適切なコントロール
- 28. プログラムを実行するための適切なFortranコンパイラ
- 29. Javascript関数を挿入するための適切な構文
- 30. 改行を印刷するための適切なフォーム(Python)
where節があったら、where節のフィールドをインデックスに追加してから、select文のすべてのフィールドを追加しますか? – John
@ John:列の参照は、私が言及した句のどれにでも当てはまる可能性があります。それは、インデックスの存在がそれが使用されることを保証するものではありません - テーブルの統計情報はインデックスの選択に役立ちます。 –