0

私のSQLは次のとおりselect id,name,city,type from company where city=? and type=?です。だから私は2つのインデックスを作成しました.1つは都市フィールドにあり、もう1つはタイプフィールドにあります.だから私の質問は:都市とタイプに複合インデックスを作成する必要がありますか?必要に応じて、なぜですか?2つの複合インデックスbtreeインデックスはどうですか?構造 VS 単一インデックス btree 構造。前もって感謝します

4

1 に答える 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 に答える