私はインデックスの重要性と、結合順序によってパフォーマンスがどのように変化するかを知っています。複数列インデックスに関連する書籍をたくさん読みましたが、私の質問に対する答えが見つかりませんでした。
複数列インデックスを作成する場合、指定順序が重要かどうか知りたいです。私の推測は「ノー」で、エンジンはそれらを順序が重要ではないグループとして扱います。でも検証したいんです。
例: mysql Web サイト (http://dev.mysql.com/doc/refman/5.0/en/multiple-column-indexes.html)
リーリーいずれにせよ、次の方が優れている、または同等であり、何かメリットがあるでしょうか?
リーリー ###具体的には:### リーリー比較
ああああ
2 つのインデックスは異なります。これは、MySQL やその他のデータベースにも当てはまります。 MySQL の違いについては、 ドキュメント .
で説明されています。2 つのインデックスを考えてみましょう:
リーリーどちらも次の場合に同様に適用されます:
リーリーidx_lf は次の場合に最適です:
リーリーidx_fl は次の状況に最適です:
リーリーこのようなケースの多くでは、 2 つのインデックスを使用することができますが、そのうちの 1 つが最適です。たとえば、idx_lf クエリの使用を検討してください: リーリー
MySQL は idx_lf を使用してテーブル全体を読み取り、order by
の後でフィルタリングできます。これは実際には最適化オプション (MySQL の場合) ではないと思いますが、他のデータベースでは起こる可能性があります。
複数列インデックスについて説明するとき、私は電話帳に例えて説明します。電話帳は基本的に、姓、名の順に構成されるインデックスです。したがって、ソート順序は、どの「列」が最初に来るかによって決まります。検索は次のカテゴリに分類されます:
スミスという姓の人を探している場合、この本は姓でソートされているため、簡単に見つけることができます。
ジョンという名前の人を探している場合、電話帳は役に立ちません。ジョンという名前が本のあちこちに散在しているからです。見つけるには電話帳全体をスキャンする必要があります。
特定の姓がスミスで、特定の名がジョンである人を探している場合、この本が役に立ちます。スミスが一緒に並べ替えられ、スミスの中でジョンも並べ替えられていることがわかるからです。現れる。###
実際にインデックスを設計する方法 を読むか、ビデオをご覧ください。