MySQL의 트랜잭션 격리 레벨(2)

초보개발·2022년 12월 2일
0

Database

목록 보기
10/10

SERIALIZABLE

가장 엄격하지만 동시 처리 기능도 떨어지는 격리 수준이다. InnoDB 테이블에서 기본적으로 순수한 SELECT 작업은 아무런 레코드 잠금도 하지않고 실행된다.(Non-locking consistent read)
이 격리 수준으로 설정되면 읽기 작업도 공유 잠금을 획득해야 하며 동시에 다른 트랜잭션은 그러한 레코드를 변경할 수 없게 된다.
-> 한 트랜잭션에서 읽고 쓰는 레코드를 다른 트랜잭션에서는 절대 접근할 수 없다는 것
이 격리 수준에서는 부정합 문제가 발생하지 않지만 InnoDB 엔진에서는 갭 락과 넥스트 키 락 덕분에 전 단계인 REPEATABLE READ 격리 수준에서도 PHANTOM READ가 발생하지 않으므로 굳이 사용할 이유가 없다.

0개의 댓글