2011-01-09 3 views
0

フィールドを検索するのに2つのフィールドfield1、field2があります。それらは、すべての記録を通して、個別にも組み合わせても一意ではありません。彼らのためにMySQLインデックス:2つのフィールドのインデックス方法の違いは何ですか?

だから私は追加しているインデックス:

アプローチ1:

alter table xx add index (field1, field2); 
alter table xx add index (field2); 

アプローチ2:

alter table xx add index (field1); 
alter table xx add index (field2); 

これらの2つのアプローチの違いは何ですかれる私の質問があれば?次の選択クエリのそれぞれについて:

select * from table xx where field1 = ?? 
select * from table xx where field2 = ?? 
select * from table xx where field1 = ?? and field2 = ?? 
select * from table xx where field1 = ?? or field2 = ?? 

どのアプローチが良いですか?

そして、このアプローチの方が良いでしょうか?あなたはアプローチ1を掲載しましたクエリの場合

select * from table xx where field1 = ?? and field2 = ?? 

答えて

0

複合インデックス(field1, field2)field1 = ?? or field2 = ??クエリのとおりfield1 = ?? and field2 = ??

とクエリに使用されるので、良くなる - index merge「を適用しようとした、とのdoesnされますこの種類のクエリを選択するアプローチ

要約すると、field1 = ?? and field2 = ??がある場合、複合インデックスが選択する必要があります。

関連する問題