16.INDEXとCLUSTER

■インデックス作成
CREATE INDEX [IndexName] ON [TableName] ([ColName]);

■インデックス削除
DROP INDEX [IndexName];

■複合インデックス
CREATE INDEX [IndexName] ON [TableName] ([ColName1],[ColName2]);

高速化される検索例
SELECT * FROM [TableName] WHERE [ColName1] = x AND [ColName2] = y;
SELECT * FROM [TableName] WHERE [ColName1] = x;
高速化されない検索例
SELECT * FROM [TableName] WHERE [ColName1] = x OR [ColName2] = y;
SELECT * FROM [TableName] WHERE [ColName2] = y;
※後方一致はNG

■部分インデックス
CREATE INDEX [IndexName] ON [TableName]([ColName]) WHERE [ColName] > x;

■INDEXにあわせてテーブルを並び替える
CLUSTER

CLUSTER [IndexName] ON [TableName];

※2回目以降はインデックス名はなくてもよい。
※テーブル名を指定しないとDB全体が対象となる。
※テーブル更新時並び替えはくずれるので、その場合定期的に実行する。

戻る | CGI'sトップへ戻る