먼저 오류 3가지를 정리하자면,
① Dirty Read: 존재하지 않거나, 롤백되었거나, 저장 위치가 바뀌었을 수도 있는 데이터를 읽는 현상
② Non-Repeatable Read: 동일한 쿼리문이 2번 이상 수행되었을 때 결과값이 다른 현상
③ Phantom Read: Non-Repeatable Read의 한 종류로, 컬럼이 없어지거나 생기거나 등의 현상
1. Read Uncommitted
- 커밋 전의 데이터도 조회할 수 있다.
- Dirty Read 발생
2. Read Committed
- 커밋이 완료된 데이터만 조회할 수 있다.
- Dirty Read 방지
- Phantom Read, Non-Repeatable Read 발생
- 교착 상태가 발생할 수 있다.
3. Repeatable Read
- 쓰는 동안 읽을 수 없고, 읽는 동안 쓸 수 없다.
- 속도가 느려진다.
- Phantom Read 발생
4. Serializable
- 한 트랜잭션에서 사용하는 데이터는 다른 트랜잭션에서 사용이 불가능하다.
- 즉, 순서대로 처리한다.
- 속도가 매우 느려질 수 있다.
'CS > 데이터베이스' 카테고리의 다른 글
이상(Anomaly) (0) | 2021.09.29 |
---|---|
SQL vs NoSQL (0) | 2021.09.29 |
Injection (0) | 2021.09.28 |
수직적 확장과 수평적 분할 (0) | 2021.09.28 |
인덱스란? (0) | 2021.07.20 |