TIL

트랜잭션 격리 수준

트랜잭션 특징

트랜잭션 격리 수준

격리 수준 문제점

격리 수준 DIRTY READ NON-REPEATABLE READ PHANTOM READ
READ UNCOMMITED O O O
READ COMMITTED   O O
REPEATABLE READ     O (InnoDB는 발생 X)
SERIALIZABLE      

동시성 관련 다양한 문제들

READ UNCOMMITED

DIRTY READ 발생

DIRTY WRITE 발생

img.png

하지만 NON-REPEATABLE READ 발생

REPEATABLE READ

MVCC는 다중 버전 병행 수행 제어의 약자로 DBMS에서는 쓰기(Write) 세션이 읽기(Read) 세션을 블로킹하지 않고, 읽기 세션이 쓰기 세션을 블로킹하지 않게 서로 다른 세션이 동일한 데이터에 접근했을 때 각 세션마다 스냅샷 이미지를 보장 해주는 메커니즘. 이는 RDBMS에서 동시성을 높이기 위해 등장한 기술로, 소수의 전산실 운영자들이 서버 컴퓨터를 사용하던 시절에는 MVCC가 선택 사항이었지만 인터넷이 보편화되고 온라인으로 업무를 처리하는 시대에서는 DBMS를 선택하는데 있어 MVCC가 가장 중요한 요소가 됐다. 출처 : 데이터넷(http://www.datanet.co.kr)

하지만 변경 유실이 발생할 수 있다. (Lost Update)

읽는 동안 데이터 변경 2

PANTOM READ 발생

SERIALIZABLE

https://zzang9ha.tistory.com/381

https://itpenote.tistory.com/616

https://www.youtube.com/watch?v=bLLarZTrebU