トランザクションの分離レベル
-
Dirty Read: コミット前のデータを他txが読み取ってしまう
-
Fuzzy Read, Non-Repeatable Read: 複数回データ読み取るときに書き換わり違う結果を読み込んでしまう
-
Phantom Read: tx Aで範囲のレコードに対して処理を行っている最中に他のtx Bで変更(追加)したときにAにもデータが反映されてしまう
-
Serializable: 読み取る全ての行に共有ロックをかける = 性能低下
-
READ UNCOMMITTED: o o o -
READ COMMITED: x o o (Oracle, Postgresデフォルトの分離レベル) -
REPEATABLE READ: x x o (MySQL) -
SRIALIZABLE: x x x