ホームページ >データベース >mysql チュートリアル >MySQL でテーブル メタデータ ロックの待機例外を解決する方法

MySQL でテーブル メタデータ ロックの待機例外を解決する方法

WBOY
WBOY転載
2023-05-29 11:31:122636ブラウズ

1. 理由

DDL ステートメントが実行されると、MDL メタデータ書き込みロックがテーブルに自動的に追加され、トランザクションがコミットされるまでロックは解放されません。このロックの目的は、テーブル構造の整​​合性とメタデータの一貫性を保護することです。

2. 処理方法

本番環境を以下のようにモードにします: セッション A がトランザクションを開き、DQL を実行します

MySQL でテーブル メタデータ ロックの待機例外を解決する方法

このセッション Bテーブルの 2 つのフィールドにフルテキスト インデックスを追加する必要があります。

MySQL でテーブル メタデータ ロックの待機例外を解決する方法

実行後、マスターがスタックしていることがわかりました。

MySQL でテーブル メタデータ ロックの待機例外を解決する方法

関連プロセスのリストを確認すると、mdl メタデータ ロックの取得を待機していることがわかります。

select * from information_schema.processlist where info like '%alter table `bas_business_type_text` %'

MySQL でテーブル メタデータ ロックの待機例外を解決する方法

#テーブル ロックの状況を確認すると、読み取りロックと書き込みロックが相互に排他的であることがわかります。

SELECT * FROM sys.schema_table_lock_waits

MySQL でテーブル メタデータ ロックの待機例外を解決する方法

プロンプトに従って、kill 11

MySQL でテーブル メタデータ ロックの待機例外を解決する方法

を実行します。セッション B がすぐに正常に実行されたことがわかります。

MySQL でテーブル メタデータ ロックの待機例外を解決する方法

以上がMySQL でテーブル メタデータ ロックの待機例外を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。