MySQLの原則 - MDL精巧なロック

簡単な紹介:MDLはロック
バイナリ
    1 MDL MDLは、ロックロックを読んで読んで互換性のSHARED_READされている
    2 MDLは、ロックMDLは、ロックを書く排他的排他的である
に対して、三つの目標
   mysql_serverで、MDLロック文レベルに対する目標ではなく、取引そのものレベルロック
   、理論的にテーブル構造を容認していない自分自身をトランザクションを実行する目的は途中で変更された2
4つのMDLアプリケーション
   0 select文のMDL_SHARED_READ
   1 DML文がMDL_SHARED_WRITE
   2つのDDL文
     DML操作をブロックしない、1インプレースMDL_SHARED_UPGRADABLEを
     2コピーMDL_EXCLUSIVEを、 DML操作は、選択期間のためにブロックされるメインカードの名前を変更します
  一覧にないロック3他のグローバルステートメントに複数の関連している
メタデータロックの5つの古典的な問題
   、我々はDDLまたはinnobackupのバックアップを実行したときに、あるだろう問題をテーブルのメタロックの問題を待っている、とフォローアップセッションを待つためにつながる、とどのように我々は対処ん
   MDLロックに支配操作によって証明されるように、MDLロックを申請する必要があり、操作の実装の分析が解除されていない、いくつかの可能性がある
   。このため1テーブルスロークエリ(選択)、ロックMDL放出しない
   コミットされていないものについては、この表の2によって引き起こされる可能性が プログラムの原因
   他のDDLテーブル操作のための3
   読み取りロックで4実行フラッシュテーブル、共通innobackupは 
   問題解決
   スロークエリ、DDL、FTWRL動作がある場合に扱う場合、参照PROCESSLIST番組を通って1
   た場合、コミットされていないものがある場合innodb_trxによって2参照しますそこが扱われ
   mysql5.7バージョン3がperformance_schema.metadata_lockで見ることができ、キーワードSHARED_READ
6補足
   1 MDLロック待機時間はlock_wait_timeoutによって設定された
   MDLの2つのmysql5.7関連する特性は、ロック最適化された
   文を読み書きする3つの事を、WRITEロックを読み取ることMDL_EXCLUSIVE、ダウングレードを適用する最初のものであるので、私は上にマークされませんでした
  MDLロックが発生すると、タイムリーに処理されなければならないので、原因デザインキューに4

おすすめ

転載: www.cnblogs.com/danhuangpai/p/11298417.html