期待どおりに機能しない場合は、MySQLのインデックスを削除する必要がある場合があります。 MySQLDROPINDEXクエリを使用してMySQLでインデックスを削除する方法は次のとおりです。
MySQLでインデックスを削除する方法
MySQLでインデックスを削除する手順は次のとおりです。 MySQL DROP INDEXクエリを使用して、テーブルから既存のインデックスを削除します。
MySQLDROPINDEXコマンドの構文は次のとおりです
DROP INDEX index_name ON table_name
[algorithm_option | lock_option];
上記のクエリで、 index_nameを置き換えます インデックスの名前、および table_name データベーステーブル名を使用します。
ボーナスリード:MySQL DROP FOREIGN KEY
2つのオプションの引数を指定することもできます– alarmithm_option およびlock_option。
alarmithm_option デフォルト、インプレース、コピーの3つの値のいずれかを持つことができます。引数に応じて、MySQLはさまざまなアルゴリズムを使用してインデックスを削除します。
その構文は
ですALGORITHM [=] {DEFAULT|INPLACE|COPY}
- デフォルト–これは alarmithm_optionを使用しない場合と同じ効果があります 引数
- copy –インデックスを削除する必要があるテーブルがコピーされ、コピーテーブルからインデックスが削除されます。この間、INSERTやUPDATEなどの同時操作は許可されません。
- インプレース–この場合、テーブルはインデックスなしでインプレースで再構築されます。このオプションでは同時操作が可能ですが、実行中にメタデータロックが適用されます。
lock_optionによって異なります インデックスが削除されている間、MySQLはテーブルへの読み取り/書き込みアクセスをロック/ロックしません。 lock_option 次の構文があります
LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE}
4つの値を取ります:
- デフォルト–選択したアルゴリズムで最大の同時実行性を許可します。サポートされている場合は、読み取りと書き込みの両方を同時に実行できます。そうでない場合は、同時読み取りのみを許可します。それもサポートされていない場合は、排他的アクセスが強制されます。
- none –サポートされている場合は、読み取りと書き込みを同時に行うことができます。それ以外の場合、MySQLはエラーを出します。
- 共有–共有オプションがサポートされている場合、同時読み取りは可能ですが、同時書き込みはできません。
- 排他的–このオプションは排他的アクセスを強制します
ボーナスリード:MySQL DROP DATABASE
MySQLDROPINDEXの例
次のインデックス付きのテーブルがあるとします。
mysql> create table orders(order_id int primary key, order_date date, product varchar(255), sale int, index name(product) );
これが、既存のインデックス nameを削除するSQLクエリです。 テーブルから注文 。
mysql> DROP INDEX name ON orders;
ボーナスリード:MySQL DROP COLUMN
MySQL DROPPRIMARYKEYインデックス
テーブルオーダーの主キーインデックスを削除する構文は次のとおりです。
mysql> DROP INDEX `PRIMARY` ON orders;
Ubiqを使用すると、データを数分で簡単に視覚化し、リアルタイムのダッシュボードで監視できます。今日お試しください。