SELECT * FROM target WHERE target_id = 100 AND category_id = 60 AND ng_flag = 1; ALTER TABLE target ADD INDEX index_target(target_id,category_id,ng_flag); ↓複合インデックス作成↓
ALTER TABLE テーブル名 ADD INDEX インデックス名(カラム名1,カラム名2,カ ラム名3); ▪複合インデックスが作成されているか確認 SHOW INDEX FROM テーブル名; ▪EXPLAINで確認する EXPLAIN SELECT カラム名を指定 FROM テーブル名 WHERE 条件文; ※正しく検証するため、selectのたびにページキャッシュを解放しておくといいです。 echo 1 > /proc/sys/vm/drop_caches 解放されたかどうかはfree -mで確認できます。
結果が以下のようになっていればOKですd(゚∀゚d) -------------------------------------------------------------------- type : ref(一意キーまたは主キー以外のインデックスを使用している) rows : 単一インデックスより減っているか Extra : Using index (最適。インデックススキャンのみで済んでいる。 つまり、カバリングインデックスが使われている。) -------------------------------------------------------------------- EXPLAINについては、今後、機会があったらまたエンジニアブログで書きます┏◦))