MySQL で「テーブル メタデータ ロックを待機中」を保持しているトランザクションを特定する方法

Mary-Kate Olsen
リリース: 2024-11-01 01:45:02
オリジナル
151 人が閲覧しました

How to Identify the Transaction Holding the

「テーブル メタデータ ロックの待機中」状態を引き起こすトランザクションの特定

MySQL で、実行中に「テーブル メタデータ ロックの待機中」メッセージが発生しました。 DDL 操作は、別のトランザクションによって保持されているロックを示します。原因となるトランザクションを特定するには、次の方法を検討してください。

MySQL バージョン 5.7.3

  • SHOW ENGINE INNODB STATUS G:
  • このコマンドは、開いているトランザクションをリストする「TRANSACTIONS」セクションを表示します。

INFORMATION_SCHEMAテーブル

  • SELECT * FROM INNODB_LOCK_WAITS:
  • すべてのロック待機に関する情報を取得します。
  • SELECT * FROM INNODB_LOCKS WHERE LOCK_TRX_ID IN (SELECT BLOCKING_TRX_ID)からINNODB_LOCK_WAITS):
  • ブロックしているトランザクションを識別します。
  • SELECT * FROM INNODB_LOCKS INNER JOIN INNODB_LOCK_WAITS ON (INNODB_LOCKS.LOCK_TRX_ID = INNODB_LOCK_WAITS.BLOCKING_TRX_ID):
  • 前と同じ情報をリストします。 query.
  • SELECT * FROM INNODB_LOCKS WHERE LOCK_TABLE = db_name.table_name:
  • 特定のテーブルのロックを見つけます。
  • SELECT TRX_ID、TRX_REQUESTED_LOCK_ID、TRX_MYSQL_THREAD_ID、TRX_QUERY FROM INNODB_TRX WHERE TRX_STATE = 'LOCK WAIT':
  • ロックを待機しているトランザクションをリストします。

リファレンス:

  • MySQL のトラブルシューティング: 対処方法クエリが機能しない場合の対処法、第 6 章 - ページ96

以上がMySQL で「テーブル メタデータ ロックを待機中」を保持しているトランザクションを特定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!