私のSQLは次のとおりselect id,name,city,type from company where city=? and type=?
です。だから私は2つのインデックスを作成しました.1つは都市フィールドにあり、もう1つはタイプフィールドにあります.だから私の質問は:都市とタイプに複合インデックスを作成する必要がありますか?必要に応じて、なぜですか?2つの複合インデックスbtreeインデックスはどうですか?構造 VS 単一インデックス btree 構造。前もって感謝します
質問する
192 次
1 に答える
0
はい、この場合city + type
、最大限のパフォーマンスを得るには複合インデックスが必要です。
mysql が一度に 1 つのインデックスしか使用できない限り (いくつかの例外を除いて、ここではそうではありません)、すべてのテーブル データをチェックcity
または縮小するだけで、スキャンを実行して正確な行を見つけます。type
複合インデックスがある場合、mysql は両方のcity=? and type=?
条件を解決できるため、結果セットを返すために追加のスキャンは必要ありません。
2 つの複合インデックス btree インデックス構造 VS 単一インデックス btree 構造はどうですか。
2 つの複合 btree 構造はありません。複合インデックスを作成すると、両方の列のデータを含む単一の B ツリー構造が作成されます。そのため、複合インデックスの順序が重要になります。
于 2012-09-11T23:55:00.820 に答える