DROP INDEX
DROP INDEXはインデックス(索引)を削除するSQL文である。以下に示す場合にインデックスを削除する。
- 不要になったインデックスを削除して、データベースのパフォーマンスを向上させたい。
- インデックスの更新頻度が低く、リソースの無駄になっていると感じている。
- 特定のインデックスがクエリのパフォーマンスに悪影響を与えていると疑っている。
Oracle
インデックスを削除する。
DROP INDEX [schema.]index [ONLINE] [FORCE]
- schema
- 他のスキーマにあるインデックスを削除する場合に、そのスキーマ名を指定する。
DROP INDEX scott.example
- index
- 削除するインデックスを指定する。
DROP INDEX example
- ONLINE
- 索引の削除中に、表またはパーティションに対するDML操作を許可する。
- FORCE
- 索引タイプ・ルーチンの起動がエラーを戻した場合、または索引にIN PROGRESSのマークが付けられている場合でも、ドメイン索引を削除する。
権限
自分のスキーマにあるインデックスを削除するのに権限は必要ない。
他のスキーマにあるインデックスを削除するには、DROP ANY INDEXシステム権限が必要である。
Postgres
DROP INDEX [CONCURRENTLY] [IF EXISTS] index [, ...] [CASCADE|RESTRICT]
- CONCURRENTLY
- インデックスのテーブルに対して同時に実行される選択、挿入、更新、削除をロックすることなくインデックスを削除する。
- IF EXISTS
- 削除しようとするインデックスが存在しない場合、DROP INDEXはエラーとなる。インデックスが存在しなくてもエラーが発生しないようにするためには、IF EXISTSオプションを指定する。
DROP INDEX IF EXISTS example
- index
- 削除するインデックスの名前を指定する。
DROP INDEX example
MySQL
インデックスを削除する。
DROP INDEX example
SQLServer
インデックスを削除する。
DROP INDEX example
削除しようとするインデックスが存在しない場合、DROP INDEXはエラーとなる。インデックスが存在しなくてもエラーが発生しないようにするためには、IF EXISTSオプションを指定する。
DROP INDEX IF EXISTS example
関連SQL
- CREATE INDEX
- 索引を作成する。
- ALTER INDEX
- 索引を再構築する。