LoginSignup
0
0

More than 3 years have passed since last update.

MySQLのINDEX削除に時間が掛かる

Posted at

経緯

IT後に試験環境に追加したINDEXを削除しようとしたら一向に終わらない。
MySQL 5.6

試したこと

MySQLのINDEX削除は絶望的に時間が掛かるらしい

MySQLのALTER TABLEは絶望的に時間が掛かるとの記事が多数。
(INDEX追加はそんなに時間が掛からなかったんだが…)

参照可能って話なのにSELECT出来ない。

更新のみ不可って記事を見たので、それなら実行しっぱなしで帰ればいいか…と思ったが、DROP INDEXを走らせて別窓からSELECTを掛けるも帰ってこない。
SHOW PROCESSLISTで実行中の処理を確認するとWaiting for table metadata lock。
参照できるって話ではなかったのか…。とりあえずKILLしてロック解除。

テーブルロックを掛けずに実行する方法を探す

ALTER TABLE に ALGORITHM=INPLACE LOCK=NONE を設定すればテーブルロックを掛けずに実行できるらしい。早速実行。
エラーは出ないので成功かと思ったが、SELECTを掛けると結局参照すら不可。

解決策

結局夜間帯に裏で実行させて朝終わってることを確認。(解決してない)
50,000件レコードのINDEX削除に8時間かかりました。

参考にさせて頂いた記事

InnoDBオンラインDDLについて
mysql 5.6~でのalter tableでやらかさない
そのALTER TABLEがオンラインALTER TABLEかどうかを確かめる方法

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0