以下の内容はhttps://ryuichi1208.hateblo.jp/entry/2024/04/07/195818より取得しました。


【MySQL】ネクストキーロックとファントムリード

ネクスキーロックとは

MySQLネクスキーロック(Next-Key Lock)は、InnoDBストレージエンジンが使用するロックの一種で、トランザクション処理中のデータの整合性を保つために使用されます。これは、行レベルのロックとギャップロックの組み合わせであり、特定の範囲のレコードに対する他のトランザクションによる挿入を防ぐことが目的です。

softwarenote.info

ファントムリードとは

トランザクションAで一定範囲のレコードに対して処理を行っている途中で、トランザクションBでデータを追加・削除してコミットした場合、トランザクションAで幻影のようにデータが反映されるため、処理の結果が変わってしまう問題のこと。

Repeatable Readのファントムリード

ANSI/ISO SQL標準で定められている分離レベルではリピータブルリードの場合はファントムリードが発生しうる分離レベルとなっている。MySQLのinndbにおいてはこれが発生しない。これは上述しているネクスキーロックの仕組みで実現されている。トランザクションAが処理中にGapとネクストキーをロックしてしまうことでそもそも更新が発生しない。この分離レベルはアカデミックな分野でいうRepeatable Readではない。Snapshot Isolationとかその辺の単語で調べると多くヒットして理解がしやすい。

ja.wikipedia.org

qiita.com

www.infoq.com




以上の内容はhttps://ryuichi1208.hateblo.jp/entry/2024/04/07/195818より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14