READ UNCOMMITTED
他トランザクションのコミット前の行を読み取ることができる。
コミット前のデータを読んでしまうので、処理がコミットされずにロールバックされると、間違ったデータを読み込んだまま処理が進んでしまう。(ダーティリード)
READ COMMITTED
コミットされたデータのみを読み取る。MySqlのデフォルト設定はこれになっている。
一度読み込んで、もう一度読み込む間のタイミングで、更新とコミットが行われればデータが変わっている。(ノンリピータブルリード、ファジーリード)
REPEATABLE READ
繰り返し同じデータを読み取っても、同じ内容であることを保証する。
一度読み込んで、もう一度読み込むタイミングで、他のトランザクションによってデータが追加された場合、データが増えてしまうことがある(ファントムリード)
SIRIALIZABLE
他のトランザクションの影響を受けずに1つずつ実行したのと同じ結果を保証する。
ダーティリード、ノンリピータブルリード、ファントムリードは発生しない。