A、基本的な行レベルロックとテーブル・レベルのロックのInnoDB

すべての記事

https://www.cnblogs.com/lay2017/p/12078232.html

 

テキスト

OLTPモードでのInnoDBのMySQLは、最も一般的にエンジンを実行するために使用されます。この記事では、InnoDBのベース行レベルのロッキングとテーブルレベルのロックを見ます。

まず第一に、存在意義ロックのは何ですか?並列クエリの時間は(共有される)場合、リソースが破壊されないようにブロッキングキュー(相互排他的な)などのリソースの呼び出しに制御する必要性を確保するためにマルチスレッドリソースの競合、からです。

ロックモードの2つの主なタイプのInnoDB

1)行レベルロック、行レベルのロックを再度に細分します

  また、S-ロックとして知られている1-1)共有ロックは、:ロックが複数のトランザクションが同じ行Xロック得られたデータを更新する他のトランザクションを防ぐために、データの同一の行を読み取ることが可能です。簡単に言えば、それは読んで、相互に排他的ではなく読み込み、書き込みは相互に排他的です。

  また、Xロックとして知られている1-2)排他的ロックは、:だけ即ち読み取りまたは更新することができない、S及びXロックをロックし、他のトランザクションの取得を防止するために、更新データ取得Xロックにトランザクションを可能にします。要するに、読み出しと書き込みは、書き込みは相互に排他的で、相互に排他的です。

2)テーブルレベルロック、テーブル・レベルのロックを再度に細分します

  また、ISロックとして知られている2-1)意図共有ロック、:権利が最初にロックテーブルを取得上のデータ線Sロックに追加しようとします。単に(IS)グローバルロックをテーブル全体を得るために、入れ、次いで各データ行ロックに加え(Sロック)を得ました。

  また、ロックIXとしても知られている2-2)意図排他ロック、:権利は、第1のロックテーブルIXを得、データ列Xロックに追加しようとします。簡単に言えば、それは最初のグローバルロックテーブル全体(IX)を取得し、各データプラスラインロック(Xロック)を与えることです。

行およびテーブルのロックは互換性がある場合

 

  ロックモード ミューテックス(X) テント排他ロック(IX) 共有ロック(S) 意図共有ロック(IS)
ロックモード コンパチブル        
ミューテックス(X)   コンフリクト コンフリクト コンフリクト コンフリクト
テント排他ロック(IX)   コンフリクト コンパチブル コンフリクト コンパチブル
共有ロック(S)   コンフリクト コンフリクト コンパチブル コンパチブル
意図共有ロック(IS)   コンフリクト コンパチブル コンパチブル コンパチブル

 

トランザクションが現在のロックと互換性のあるロックを要求した場合、それはトランザクションを許可InnoDBのロックを要求します。そうしないと、ロック解除を待たなければなりません。

 

概要

InnoDBのテーブルロックへと行レベルのロック。両方Sは、それらの間の互換性は、上記の表に示すように、セグメント、Xロックとロックである、IXロックを再びロックします。

参考リンク:https://zhuanlan.zhihu.com/p/29150809

おすすめ

転載: www.cnblogs.com/lay2017/p/12230563.html