2021-11-12 데이터베이스 첫걸음 (10주차)
트랜잭션
- 복수의 쿼리를 한 단위로 묶는 것
- Atomicity(원자성)
- 일련의 데이터 조작이 전부 성공할지 전부 실패할지를 보증하는 구조
- 중간에 하나라도 실패하면 ROLLBACK실행해 처음부터
-
Consistency(일관성)
- Isolation(고립성)
- 데이터 조작을 복수 사용자가 동시에 실행해도 각각의 처리가 모순 없이 실행되는 것
- Durability(지속성)
- 데이터 조작을 완료하고 완료 통지를 받는 시점에서 그 조작이 영구적이 되어 그 결과를 잃지 않는 것
- DDL에 의한 암묵적인 커밋
- MySQL이나 Oracle에서는 Create Table과 같은 DDL실행 시 암묵적인 커밋이 발생함
- 오토커밋 설정
- 하나의 SQL 문이 하나의 트랜잭션으로 구분된다.
- 사용자가 Commit 또는 ROLLBACK 을 실행하기까지가 하나의 트랜잭션이 된다.
MVCC에 따른 MySQL의 특성
- 읽기를 수행할 경우 갱신 중이라도 블록되지 않는다.
- 읽기 내용은 격리 수준에 따라 내용이 바뀌는 경우가 있다
- 갱신 시 배타적 잠금을 얻는다. 잠금은 기본적으로 행 단위로 얻으며 트랜잭션이 종료할 때까지 유지한다.
- 갱신과 갱신은 나중에 온 트랜잭션이 잠금을 획득하려고 할 때 블록된다.
Written on November 12, 2021