GMOアドマーケティングのT.Kです。 ALTER TABLE 実行時に排他的ロックが発生する事を見落とし、パーティション削除を実行したら、Waiting for table metadata lockを大量発生させてしまいました。 対象テーブルが別セッションで参照されていない時なら、きわめて短時間で終わる処理でしたが、重いクエリの実行中だったのでロック取得待ちになりました。 その間の新しい参照はWaiting for table metadata lockでブロックされました。 忘れないために、ここに再現手順を残します。 前に触れた例外とは、ALTER TABLE が、テーブルの .frm ファイルの新しいバージョンをインストールし、古いファイルを破棄して、テーブルおよびテーブル定義キャッシュから古くなったテーブル構造をクリアする準備ができた時点で (書き込みだけでなく) 読み取りをブロ
![MySQLのテーブル定義変更の並列性](https://cdn-ak-scissors.b.st-hatena.com/image/square/4fd0d4ab63759cc5518bf41c635ff353ac930832/height=288;version=1;width=512/https%3A%2F%2Ftechblog.gmo-ap.jp%2Fwp-content%2Fuploads%2F2022%2F04%2Fogpimage001.png)