DROP [ONLINE|OFFLINE] INDEXindex_name
ONtbl_name
DROP INDEX
はテーブル tbl_name
から
index_name
と名づけられたインデックスをドロップします。このステートメントは、インデックスをドロップするために
ALTER TABLE
ステートメントにマップされます。項8.1.7. 「ALTER TABLE
構文」
を参照してください。
MySQL 5.1.7
からは、可変幅カラム上のインデックスはオンラインで削除されます。つまり、インデックスを削除するために、テーブルのコピーは必要なくなりました。NDBCLUSTER
テーブルの場合は、ほかの MySQL Cluster API
ノードからのアクセスに対してテーブルがロックされません。ただし、オンライン操作の期間中、同じ
API
ノード上のほかの操作に対してはロックされます。これは、サーバーが実行できると判断した場合は常にサーバーによって自動的に実行されます。これを実行させるために、特別な
SQL
構文やサーバーオプションを使用する必要はありません。
標準の MySQL 5.1
リリースでは、サーバーがインデックスをオンラインで削除することを決定したときに、そのサーバーの動作をオーバーライドすることはできません。MySQL
Cluster では、MySQL Cluster NDB 6.2.5 および MySQL Cluster
NDB 6.3.3 から、OFFLINE
キーワードを使用してインデックスをオフラインで削除できます
(これにより、クラスタ内のすべての API
ノードに対してテーブルがロックされる)。オンラインの
DROP OFFLINE INDEX
および
DROP ONLINE INDEX
を管理する規則と制限は、ALTER
OFFLINE TABLE ... DROP INDEX
および
ALTER ONLINE TABLE ... DROP
INDEX
に対するものと同じです。ONLINE
キーワードを使用して、通常はオフラインで削除されるインデックスのオンラインでの削除を実行させることはできません
(DROP
操作をオンラインで実行できない場合、ONLINE
キーワードは無視される)。詳細は
項8.1.7. 「ALTER TABLE
構文」 をご覧ください。
ONLINE
および
OFFLINE
キーワードは、MySQL Cluster NDB 6.2 および MySQL
Cluster NDB 6.3 リリースのそれぞれ、バージョン
6.2.5 および 6.3.3
からのみ使用できます。それ以前の MySQL Cluster
NDB 6.2 または 6.3 リリース、標準の MySQL 5.1
リリース、または MySQL Cluster NDB 6.1
リリースでこれらのキーワードを使用しようとすると、構文エラーが発生します。