← 질문 목록
#200깊이 0
트랜잭션 격리 수준을 결정하는 기준은 무엇인가?
데이터 정합성 보장 수준과 시스템 성능 사이의 트레이드오프를 기준으로 결정한다.
| 기준 | 격리 수준 낮음 | 격리 수준 높음 |
|---|---|---|
| 정합성 | 낮음 (이상 현상 발생) | 높음 (데이터 일관성) |
| 성능/처리량 | 높음 (잠금 최소화) | 낮음 (잠금/대기 증가) |
격리 수준이 낮으면 여러 트랜잭션이 같은 데이터를 동시에 읽고 쓸 수 있어 처리량이 늘어난다. 하지만 더티 리드나 팬텀 리드 같은 현상이 발생해 데이터가 꼬일 수 있다.
격리 수준을 높이면 잠금이나 다중 버전으로 이상 현상을 줄인다. 다만 완벽한 보장은 아니고 처리량을 내주는 대가가 있다. 다만, 트랜잭션 간 대기 시간이 길어져 전체적인 시스템 응답 속도가 떨어진다.
보통 Read Committed를 기본으로 쓰며, 정밀한 계산이 필요한 금융권이나 결제 로직에서는 Repeatable Read 이상을 선택한다.
추천 꼬리질문
관련 질문
- 분산 트랜잭션에서 Saga 패턴이 필요한 이유는?아키텍처 · 분산시스템단일 DB 트랜잭션 격리 수준을 넘어 분산 환경에서의 트랜잭션 일관성 유지 방법을 다룹니다.
- 격리 수준을 올리면 무엇을 잃는가?데이터베이스트랜잭션 격리 수준 결정 기준과 그에 따른 트레이드오프(성능 및 정합성)를 함께 다룹니다.
- 낙관적 락과 비관적 락은 무엇으로 고르는가?데이터베이스낙관적/비관적 락과 트랜잭션 격리 수준은 모두 동시성 제어와 데이터 일관성 유지 전략에 관한 개념이다.
- 데이터베이스 격리 수준을 높이면 전체 처리량은 어떻게 변화하는가?데이터베이스격리 수준 선택과 성능 비용 트레이드오프라는 같은 밑바탕을 다룬다
- RDB와 NoSQL 중 무엇을 기준으로 선택하는가?데이터베이스