완화된 격리 수준 두 트랜잭션이 동일한 데이터에 접근하지 않으면 서로 의존하지 않기에 안전하게 병렬로 실행 가능 동시성 문제는 트랜잭션이 다른 트랜잭션에서 동시에 변경한 데이터를 읽거나 두 트랜잭션이 동시에 같은 데이터를 변경하려고 할 때만 발생함 동시성 문제는 테스트로 발견하기 어렵고 재현하기도 어렵고 추론하기도 어렵다. 데이터베이스는 트랜잭션 격리를 제공해서 개발자들에게 동시성 문제를 감추려고 함 어떤 동시성 이슈로부터는 보호해 주지만 모든 이슈로부터 보호해 주지는 않는 완화된 격리 수준을 사용하는 시스템이 흔함 -> 이로 인해서 많은 문제 발생 맹목적으로 도구에 의존하는 것보다 존재하는 동시성 문제의 종류를 이해해서 방지하는 방법을 배우는 게 중요함 커밋 후 읽기 (read committed) 가장 기본적인 수준의 트랜잭션 격리인 커밋 후 읽기다.
데이터베이스에서 읽을 때 커밋된 데이터만 보게 됨(Dirty Read가 없음) 데이터베이스에서 쓸 때 커밋된 데이터만 덮어쓰게 됨 ...
#
격리수준
#
더티리드
#
더티쓰기
#
스냅숏
#
커밋후읽기
#
트랜잭션
원문 링크 : 트랜잭션 (2)