ドゥアイネットのプログラマー、湯川が開発日記を綴ります。

CALENDAR
S M T W T F S
1234567
891011121314
15161718192021
22232425262728
293031    
<< December 2019 >>
ARCHIVES
CATEGORIES
<< 時間外対応 | main | 25周年 >>
複合インデックス
Mysqlの複合インデックスを使用しました。

「検索条件に複数列を指定する場合などでは、単一カラムのインデックスよりも
複合インデックスの方が高速な検索を行うことが出来る」というものです。

作成するときは以下のように書きます

create index idx_colA_colB_colC  on  tableA(colA,colB,colC);
※create index 後の名称は任意です。
複合インデックスにしたいカラムをまとめて記述します。

消すときは以下のように書きます。

drop index idx_colA_colB_colC  on  tableA;

複合インデックスを使用することで、検索速度を上げることができました。
注意しないといけないのは、指定したカラムが検索条件として使われるようにしないと
複合インデックスが検索に使われないところです。

上記の場合だと以下の条件で検索しても、複合インデックスは検索に使われません。
where colA = '001' AND   (colB = '002' OR colC = '003')

この場合は、複合インデックスが使用されます。
where colA = '001' AND   colB = '002' AND colC = '003'

ちょっと気をつけなければいけませんが、
データ数が多くなってしまったシステムの検索速度向上に使えると思いました。
| Mysql | 16:02 | comments(0) | - |
コメント
コメントする