DDL ステートメントが実行されると、MDL メタデータ書き込みロックがテーブルに自動的に追加され、トランザクションがコミットされるまでロックは解放されません。このロックの目的は、テーブル構造の整合性とメタデータの一貫性を保護することです。
本番環境を以下のようにモードにします: セッション A がトランザクションを開き、DQL を実行します
このセッション Bテーブルの 2 つのフィールドにフルテキスト インデックスを追加する必要があります。
実行後、マスターがスタックしていることがわかりました。
関連プロセスのリストを確認すると、mdl メタデータ ロックの取得を待機していることがわかります。
select * from information_schema.processlist where info like '%alter table `bas_business_type_text` %'
SELECT * FROM sys.schema_table_lock_waits
以上がMySQL でテーブル メタデータ ロックの待機例外を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。