大事な機構「metadata lock」 MySQL5.5.3から導入された「metadata lock」。 その目的は、 「トランザクション実行中に触ったテーブルについて、DDLによるテーブル構成情報の変更から守る」 ということ。 そうしないと、ロールバックしようとしたら「テーブルがDropされた!カラムが増えた/減った!、どうしたらいいのよ、このレコード!」とかいうことが発生してしまうから。 公式ドキュメント的には、こちらです。 MySQL :: MySQL 5.6 リファレンスマニュアル :: 8.10.4 メタデータのロック 面倒くさい、「metadeta lock」 トランザクションの最中に、「SELECT」しかしていないテーブルも、metadeta lockを掴んでしまう、ということ。 よくネットで叩かれている「DBViewer」、定義情報を参照しただけでも、裏でトランザクショ