-
트랜잭션 격리 레벨 정리DB 2021. 4. 3. 18:14
평소에 쓰고는 있지만, 머리속에서 깔끔하게 정리가 안되니 설명하기가 힘든것 같다.
이번 기회에 정리를!
트랜잭션 격리 레벨에는 4가지가 있다.
READ-UNCOMMITED / READ-COMMITED / REPEATABLE-READ / SERIALIZABLE
1 -> 4로 갈수록 데이터 정합성이 높아지면서, 동시성이 떨어진다
1.READ-UNCOMMITED
커밋전의 데이터 변경 내용을 다른 트랜잭션에서 읽는 것을 허용함
주의점 : DIRTY-READ 발생, NON-REAPEATABLE-READ 발생
2.READ-COMMITED
커밋이 완료된 트랜잭션의 변경사항만 , 다른 트랜잭션에서 조회가 가능함
주의점 : NON-REAPEATABLE-READ 발생 , PANTOM-READ 발생
3.REPEATABLE-READ
트랜잭션 범위내에서 조회한 내용이 항상 동일함을 보장함
주의점 : PTANTOM-READ 발생
4.SERIALIZABLE
한 트랜잭션에서 사용하는 데이터는 다른 트랜잭션에서 접근 불가 (동시성이 가장 많이 떨어짐 -> 데드락 조심!)
NON-REPEATABLE 현상이란?
하나의 트랜잭션 안에서 결과값이 불일치 하는 현상을 말합니다
PANTOM-READ현상이란?
NON-REPEATABLE현상과 비슷해보이지만, 다른점이 있다.
하나의 트랜잭션안에서 데이터가 없어지거나, 추가되어지는 것이다.
'DB' 카테고리의 다른 글
AWS Dynamo DB 개념 (0) 2021.04.25 [MSSQL] 스키마, 데이터 추출 스크립트 생성 방법 (링크) (0) 2020.02.08 [Maria DB & MySQL] 사용자 권한 주기 (0) 2019.10.23 [MSSQL] 프로시저 동적쿼리 작성시 SQL Injection 우회 방법 (0) 2019.06.03 [MSSQL] SCOPE_IDENTITY() (0) 2019.02.24