■インデックスとは
インデックスを和訳すると「索引」。データベースの性能を向上させる方法の1つ。
■インデックスの利点(メリット)
大量レコードが存在するテーブルで、検索・ソート・結合で多用される項目(カラム)に対してインデックスを作成すると処理速度を上げることができる。
■インデックスの欠点(デメリット)
テーブルとは別の領域にインデックスのデータを保持するため、レコード更新や追加や削除する処理が重くなる。
■インデックスを使用するには
下記SQLで対象の項目(カラム)にインデックスの作成ができる。
CREATE INDEX [インデックス名] ON [対象テーブル名]([対象カラム名]);
/*例) ユーザー情報マスタ(MST_USER_INFO)のユーザー名(userName)にインデックス作成*/
CREATE INDEX index_userName ON MST_USER_INFO(userName);
また、テーブル作成時にも下記のようにインデックスを作成できる。
CREATE TABLE [対象テーブル名]
([カラム名 型],[カラム名 型], ... ,
INDEX [インデックス名]([対象カラム名]);
■インデックスの確認方法
あるテーブルのインデックスを確認したい場合は、以下SQLで確認ができる。
SELECT * FROM USER_IND_COLUMNS
WHERE TABLE_NAME = [確認対象テーブル名]
ORDER BY INDEX_NAME, COLUMN_POSITION;
また、対象のDBのインデックスすべてを調べたいときは、以下SQLで確認できる。
SELECT * FROM USER_INDEXES;