order-bygroup-byを使用するクエリがあります
count(*)、filed2を選択します table1からfield1>xgroup by filed2 order by count(*)desc
このクエリに最適なインデックスは何ですか。
sholud I index filed1、field2 seprateまたはtogether?
order-bygroup-byを使用するクエリがあります
count(*)、filed2を選択します table1からfield1>xgroup by filed2 order by count(*)desc
このクエリに最適なインデックスは何ですか。
sholud I index filed1、field2 seprateまたはtogether?
2つの異なる順序で両方の列を持つインデックスを作成する必要があります
ALTER TABLE table1 ADD INDEX field1_field2_ndx (field1,field2);
ALTER TABLE table1 ADD INDEX field2_field1_ndx (field2,field1);
両方の列でインデックスを作成すると、クエリがインデックスを通過してクエリを満たすためだけになるため、個別のインデックスを作成しないでください。テーブルに触れる必要はありません。
個別のインデックスを作成した場合でも、クエリオプティマイザは2列のインデックスを選択します。
2つのインデックスができたので、クエリオプティマイザを信頼して正しいインデックスを選択します。クエリに基づいて、EXPLAINプランはfield2_field1_ndx
インデックスを選択します。