😎

Django2.0以降のトランザクション分離レベル

2023/02/24に公開

書くこと

  • Djangoのトランザクション分離レベル
  • Djangoのトランザクション分離性

利用バージョン

Django2.0以降

本題

簡潔に

  • 別TransactionのCommit前の値は参照しない
  • 別TransactionのCommitタイミング次第で値/レコードが変化する

Djangoのトランザクション分離レベル

分離レベル ダーティリード ファジーリード ファントムリード
READ COMMITTED FALSE TRUE TRUE

Djangoのトランザクション分離性

分離性 説明
ダーティリード 別トランザクションでコミット前の値を参照する(してしまう)
ファジーリード 複数回の参照で、レコードの値が変わってしまう(別のトランザクションのUpdateに影響)
ファントムリード 複数回の参照で、レコード数が増減する(別トランザクションのCreate/Deleteに影響)

Discussion