Kim Seogyu
Database

Which is best isolation level for a common situation

MySQL 트랜잭션 격리수준 선택 기준을 서비스 유형별로 정리합니다.

Published 2025년 12월 27일1 min read134 words

Which is best isolation level for a common situation

격리수준의 정답은 없습니다. "허용 가능한 이상현상"과 "필요한 처리량" 사이에서 선택해야 합니다.

격리수준 빠른 기준

  • READ COMMITTED: 대부분의 OLTP 기본 선택
  • REPEATABLE READ: MySQL 기본값, 일관성 강화 필요 시
  • SERIALIZABLE: 강한 정합성이 최우선인 좁은 구간
  • READ UNCOMMITTED: 일반 서비스에는 비권장

선택할 때 보는 질문

  1. 더티 리드가 절대 허용 불가인가?
  2. 같은 트랜잭션에서 재조회 결과가 바뀌면 문제인가?
  3. 팬텀 리드를 애플리케이션이 처리할 수 있는가?
  4. 락 경합으로 인한 지연을 감당 가능한가?

실무 권장 패턴

  1. 전역 기본값은 READ COMMITTED 또는 MySQL 기본 전략 유지
  2. 민감 트랜잭션만 상위 격리수준으로 승격
  3. 격리수준 변경 전 deadlock/latency 리허설 수행
  4. 낙관적 잠금(버전 컬럼)과 함께 사용 검토

결론

격리수준은 DB 파라미터가 아니라 비즈니스 정책입니다. 트랜잭션별로 필요 정합성을 분리해 설정하세요.

Share

Related Articles

Comments

이 블로그는 제가 알고 있는 것들을 잊지 않기 위해 기록하는 공간입니다.
직접 작성한 글도 있고, AI의 도움을 받아 정리한 글도 있습니다.
정확하지 않은 내용이 있을 수 있으니 참고용으로 봐주세요.

© 2026 Seogyu Kim