MariaDB 트랜잭션 isolation Level
페이지 정보
작성자 DBM 작성일 22-02-07 13:16 조회 3,957 댓글 1본문
MariaDB는 4개의 트랜잭션 레벨을 설정 할 수 있습니다.
1. READ UNCOMMITTED
- 아직 commit되지 않은 데이터를 다른 트랜잭션이 읽는 것을 허용한다. 다른 트랜잭션이 commit 전 데이터를 볼 수 있다.
- Dirty Read, Non-Repeatable Read, Phantom Read 모두 발생한다.
2. READ COMMITTED
- commit된 내용만 읽을 수 있다. 트랜잭션이 다르더라도 다른 트랜잭션이 commit하면 해당 데이터를 볼 수 있다.
- Non-Repeatable Read, Phantom Read 발생한다.
3. REPEATABLE READ
- select시 현재 버전의 snapshot을 만들고 그 snapshot으로부터 데이터를 조회한다. 동일 트랜잭션 내에서 일관성 보장, 하지만 데이터를 다시 읽어들이기 위해서는
트랜잭션을 다시 시작해야 한다.
- Phantom Read 발생한다.
4. SERIALIZABLE
- 가장 높은 레벨이며 트랜잭션이 끝날 때까지 SELECT 문이 사용하는 모든 데이터에 shared lock이 걸린다.
동시성이 가장 적지만 독립성은 가장 높다.
최고관리자님의 댓글
최고관리자 작성일좋은글 감사합니다. ^^