PostgreSQLでのindexの作成方法や削除方法など
indexの作成
以下の構文でできます
CREATE INDEX {index名} ON {Table名} ({Column名});
これにより作成されるindexの種類はbtreeになります。
■実行例
SAMPLEDB=> CREATE INDEX sampletbl1_column1_idx ON sampletbl1 (column1); CREATE INDEX
ユニークindexにする場合
CREATE UNIQUE INDEX {index名} ON {Table名} ({Column名});
indexの種類を指定する場合
indexの種類をbtree以外にしたい場合はUSING
で指定します。
例えばGiSTのindexを使用する場合は以下のようになります
CREATE INDEX {index名} ON {Table名} USING GIST ({Column名});
indexの作成(対象indexが存在しない場合だけ作成を行う)
対象のindexが存在しない場合だけ作成する(存在する場合でもエラーにならないようにする)には以下の構文
CREATE INDEX IF NOT EXISTS {index名} ON {Table名} ({Column名});
indexの削除
以下の構文でできます。CREATE INDEXで指定したindex名を指定して
DROP INDEX {index名};
■実行例
SAMPLEDB=> DROP INDEX sampletbl1_column1_idx; DROP INDEX
indexの削除(対象indexが存在する場合だけ削除を行う)
対象のindexが存在する場合だけ削除する(存在しない場合でもエラーにならないようにする)には以下の構文
DROP INDEX IF EXISTS {index名};
indexの状況確認
psql
で以下操作をすることでindexの状況を各印できます
indexの一覧
以下でindexの一覧を確認できます
\di
■実行例
SAMPLEDB=> \di List of relations Schema | Name | Type | Owner | Table --------+------------------------------------+-------+--------+------------------ public | sampletbl1_column1_idx | index | user | sampletbl1 public | sampletbl1_column2_idx | index | user | sampletbl1 public | sampletbl2_columnA_idx | index | user | sampletbl2 public | sampletbl2_columnB_idx | index | user | sampletbl2
indexの詳細確認
以下でindexの詳細を確認できます
\d {index名}
■実行例
SAMPLEDB=> \d sampletbl1_column2_idx Index "public.sampletbl1_column2_idx" Column | Type | Definition --------------------+---------+-------------------- id | bigint | id column2 | integer | column2 primary key, btree, for table "public.sampletbl1"