【MySQL】トランザクション管理

MySQLのトランザクションについてのメモ。
後でまとめる。

◆REPEATABLE READ
ファントムリード
スナップショットを保持している場合、発生しない。
スナップショットを保持していない場合、発生する。

ファジーリード
スナップショットを保持している場合、発生しない。
スナップショットを保持していない場合、発生する。

◆READ COMMITTED
ファントムリード
発生する。
ファジーリード
発生する。
スナップショットを保持しない。

MySQLは「REPEATABLE READ」の場合、
「START TRANSACTION;」時点でトランザクションが開始されるわけではなく、
最初のSELECTでトランザクションが開始される。
利点でもあり、欠点でもある。

ファントムリードは追加レコードを参照してしまうこと。
ファジーリードは更新レコードの値を参照してしまうこと。