Open SeoYeonBae opened 1 year ago
동시에 여러 트랜잭션이 처리될 때, 트랜잭션이 서로 얼마나 고립되어 있는지(잠금 수준)을 나타내는 것
레벨이 높아질 수록 트랜잭션 간 고립 정도 ↑, 성능 ↓
[레벨0] READ UNCOMMITTED
[레벨1] READ COMMITTED
[레벨2] REPEATABLE READ
[레벨3] SERIALIZABLE
Dirty Read | Non-Repeatable Read | Phantom Read | |
---|---|---|---|
Read Uncommitted | O | O | O |
Read Committed | X | O | O |
Repeatable Read | X | X | O |
Serializable | X | X | X |
동시에 여러 트랜잭션이 처리될 때, 서로 얼마나 고립되어 있는지 그 잠금 수준을 나타냄 필요한 이유는 만약 완전히 locking 걸어버리면 하나의 트랜잭션이 끝날 때까지 기다려야 하므로 성능 저하
📌 트랜잭션의 격리 수준이란?
📌 트랜잭션 격리 수준에 따라 발생할 수 있는 문제들
1. 더티 리드
2. 반복 불가능한 조회
3. 팬텀 리드
📌 트랜잭션 격리 수준 종류와 발생 문제
1. SERIALIZABLE (직렬화 가능)
2. REPEATABLE READ (반복 가능한 읽기)
3. READ COMMITTED (커밋된 읽기)
4. READ UNCOMITTED (커밋되지 않은 읽기)
📌 정리