스냅샷(Snapshot)
스냅샷은 트랜잭션이 시작될 때 데이터베이스의 특정 시점의 상태를 캡처하여, 이후의 읽기 작업이 이 스냅샷 상태를 기준으로 수행되도록 하는 방식이다. 이를 통해 트랜잭션이 일관된 데이터를 읽을 수 있으며, 다른 트랜잭션의 변경 사항으로 인한 데이터 변화를 방지할 수 있다.
반복 가능 읽기 격리(Repeated Read Isolation)
반복 가능 읽기 격리는 트랜잭션이 여러 번 동일한 읽기 작업을 수행할 때, 트랜잭션이 읽은 데이터는 일관되게 유지되며, 다른 트랜잭션에서의 변경 사항이 영향을 미치지 않도록 보장하는 격리 수준이다. 이는 트랜잭션이 실행되는 동안 데이터의 일관성을 보장하지만, 삽입된 새로운 행을 감지할 수 있다.
특성 | 스냅샷(Snapshot) | 반복 가능 읽기 격리(Repeated Read Isolation) |
데이터 일관성 | 트랜잭션 시작 시점의 일관된 스냅샷 | 트랜잭션의 읽기 작업에서 일관된 데이터 |
다른 트랜잭션의 변경 사항 감지 | 감지 불가 | 기존 행의 변경 감지 불가, 새로운 행은 감지 가능 |
데이터 상태 | 트랜잭션 시작 시점 기준 | 첫 번째 읽기 시점 기준 |
사용 사례 | 일관된 데이터 뷰가 필요한 읽기 작업 | 동일한 데이터의 반복 읽기에서 일관성이 필요한 경우 |
기술 구현 | 주로 MVCC 기반 | 데이터베이스 트랜잭션 관리 |