T という名前のテーブルが 1 つあります。このテーブルには、x、y、z、w の 4 つの属性があります。
テーブルにデータをロードしました。次に、x にインデックスを作成し、y にも別のインデックスを作成しました。
さて、このクエリを送信すると:
select count(*) from T where x <= 10 and y <=100;
インデックス x とインデックス y が使用されると仮定します。
しかし、そうはなりません!
select ステートメントの前にコマンド EXPLAIN を使用すると、インデックス x と y が " possible_keys
" として表示されますが、列 " key
" の下に NULL があります。つまり、インデックスは使用されませんでした。
ここで、このクエリを送信すると:
select count(*) from T where x<=50;
次に、EXPLAIN コマンドが示すように、MySQL はインデックス x を使用します。
それで、条件のANDはインデックスの使用を妨げていますか、それとも私がここで間違ったことをしましたか?
よろしく!