게으른개발자/공부
트랜잭션
goslim56
2021. 4. 17. 18:30
정의: 안전하게 수행되는것을 보장하는 성질
성질
- Atomicity(원자성): All OR Nothing (모두 반영, 전혀 반영 x)
- Consistency(일관성): 트랜잭션 각각의 독립성 보장
- Isonlation(독립성): 트랜잭션 각각의 독립성 보장
- Durability(지속성): 트랜잭션 성공시 결과가 영구히 반영
트랜잭션 격리수준: 트랜잭션성질(ACID)도 지키면서 성능 보장을 위해 동시에 DB에 접근할때 그 접근을 어떻게 제어할지에 대한 설정
이름설명이미지비고
read-uncommitted | 커밋 전의 트랜잭션의 데이터 변경 내용을 다른 트랜잭션이 읽는 것을 허용 | ![]() |
Drity Read 현상 발생 가능성 있음 |
read-committed | 커밋이 완료된 트랜잭션의 변경사항만 다른 트랜잭션에서 조회 가능 | ![]() |
Non-Repeatable Read 발생 가능성 있음 : 같은 트랜잭션 내에서 같은 데이터를 조회했으나 데이터가 불일치하는 현상
|
repeatable-read | 트랜잭션 범위 내에서 조회한 내용이 항상 동일함을 보장 | ![]() |
Pahntom Read 발생 가능성 있음 : Pahntom Read는 Non-Repeatable Read의 한종류로 Select 문을 사용했을때 데이터가 추가되거나 없어지는 현상 ![]()
|
serializable | 한 트랜잭션에서 사용하는 데이터를 다른트랜잭션에서 접근 불가 |
출처: www.youtube.com/watch?v=e9PC0sroCzc&list=PLgXGHBqgT2TvpJ_p9L_yZKPifgdBOzdVH&index=24