Skip to content

트랜잭션 ​

트랜잭션(transaction)은 여러 SQL 문을 하나의 작업 단위로 묶는 장치다. 묶인 문장은 마지막에 커밋(commit)하면 전부 반영되고, 롤백(rollback)하면 전부 취소된다. 여러 트랜잭션이 동시에 실행될 때 한 트랜잭션이 다른 트랜잭션의 변경을 어디까지 볼 수 있는지, 누가 누구의 잠금을 기다리는지가 이 대주제의 핵심이다.

학습 순서 ​

  1. 트랜잭션 기초 — ACID(Atomicity·Consistency·Isolation·Durability, 원자성·일관성·격리성·지속성), 자동 커밋(autocommit), 암시적 커밋(implicit commit) 주의사항 (면접 비중: 높음)
  2. MySQL 엔진 잠금 — 서버 층의 글로벌 락(global lock)·테이블 락(table lock)·네임드 락(named lock)·메타데이터 락(metadata lock) (면접 비중: 높음)
  3. InnoDB 잠금 — 레코드 락(record lock)·갭 락(gap lock)·넥스트키 락(next-key lock)과 데드락(deadlock) (면접 비중: 높음)
  4. 격리수준 — 4단계와 막는 이상 현상(더티 리드·반복 불가능한 읽기·팬텀 리드) (면접 비중: 높음)
  5. 격리수준 2 — InnoDB가 각 수준을 구현하는 방식, 다른 엔진과 차이, 흔한 오해와 실무 (면접 비중: 높음)