2021-11-12 데이터베이스 첫걸음 (10주차)

트랜잭션

  • 복수의 쿼리를 한 단위로 묶는 것
  • Atomicity(원자성)
    • 일련의 데이터 조작이 전부 성공할지 전부 실패할지를 보증하는 구조
    • 중간에 하나라도 실패하면 ROLLBACK실행해 처음부터
  • Consistency(일관성)

  • Isolation(고립성)
    • 데이터 조작을 복수 사용자가 동시에 실행해도 각각의 처리가 모순 없이 실행되는 것
  • Durability(지속성)
    • 데이터 조작을 완료하고 완료 통지를 받는 시점에서 그 조작이 영구적이 되어 그 결과를 잃지 않는 것
  • DDL에 의한 암묵적인 커밋
    • MySQL이나 Oracle에서는 Create Table과 같은 DDL실행 시 암묵적인 커밋이 발생함
  • 오토커밋 설정
    1. 하나의 SQL 문이 하나의 트랜잭션으로 구분된다.
    2. 사용자가 Commit 또는 ROLLBACK 을 실행하기까지가 하나의 트랜잭션이 된다.

MVCC에 따른 MySQL의 특성

  1. 읽기를 수행할 경우 갱신 중이라도 블록되지 않는다.
  2. 읽기 내용은 격리 수준에 따라 내용이 바뀌는 경우가 있다
  3. 갱신 시 배타적 잠금을 얻는다. 잠금은 기본적으로 행 단위로 얻으며 트랜잭션이 종료할 때까지 유지한다.
  4. 갱신과 갱신은 나중에 온 트랜잭션이 잠금을 획득하려고 할 때 블록된다.
Written on November 12, 2021