eunzae's develog
[SQL]트랜잭션 격리성(Isolation level) 본문
트랜잭션의 격리성은, 일관성과 마찬가지로 Lock을 강하게 오래 유지할수록 강화되고, Lock을 최소화할수록 약화된다.
낮은 단계의 격리성 수준에서 발생하는 현상
serializable
transection1 → insert
transection2 → insert
두 트랜잭션 동시에 수행 시
!err: Deadlock
Read uncommitted
transection1 → insert (Commit 하지 않은 상태)
transectrion2 → read(데이터 읽음)
Commit 되지 않은 데이터를 읽음 → 만약 Rollback 시 존재하지 않은 데이터를 읽은 것
Dirty read
Read committed(주로 사용)
transection1 → update (Commit 하지 않은 상태)
transectrion2 → read(데이터 읽음)
Commit 되지 않은 데이터를 읽음
transection1 → Commit
transectrion2 → read(데이터 다시 읽음) 기존에 읽었던 데이터와 불일치
non-repeatable read
Isolation 높아질 수록 안정적 but 부하 가능성 있음
Reference
https://dataonair.or.kr/db-tech-reference/d-guide/sql/?pageid=2&mod=document&uid=362
트랜잭션
트랜잭션(Transaction)은 업무 처리를 위한 논리적인 작업 단위다. 작업의 논리적 단위가 단일 연산이 아닐 수 있다. 즉, 하나의 트랜잭션이 두 개 이상의 갱신 연산일 수 있다. 은행의 “계좌이체”
dataonair.or.kr
'Language > SQL' 카테고리의 다른 글
[SQL]만 나이 계산 쿼리 (0) | 2022.04.25 |
---|---|
[SQL]TCL(트랜잭션 제어어) (0) | 2022.04.25 |
[SQL]트랜잭션의 특징(ACID) (0) | 2022.04.24 |
[SQL] 정규식 사용 앞뒤 공백 제거 (0) | 2022.04.19 |
[SQL] case when 절 이용한 데이터 정제 (0) | 2022.04.19 |