트랜잭션

하나의 작업 단위입니다. 전부 성공하거나 전부 실패합니다.


예시: 계좌 이체

-- A가 B에게 10만원 이체
UPDATE accounts SET balance = balance - 100000 WHERE user = 'A';
UPDATE accounts SET balance = balance + 100000 WHERE user = 'B';

둘 중 하나만 실행되면 문제가 생깁니다.

A에서 빠짐 → 서버 다운 → B에는 안 들어감
→ 10만원 증발!

트랜잭션으로 묶으면

START TRANSACTION;
UPDATE accounts SET balance = balance - 100000 WHERE user = 'A';
UPDATE accounts SET balance = balance + 100000 WHERE user = 'B';
COMMIT;  -- 둘 다 성공하면 확정
START TRANSACTION;
UPDATE accounts SET balance = balance - 100000 WHERE user = 'A';
-- 에러 발생!
ROLLBACK;  -- A에서 빠진 것도 취소됨

ACID 특성

ACID

특성설명
Atomicity (원자성)전부 성공 or 전부 실패
Consistency (일관성)실행 전후 데이터 무결성 유지
Isolation (격리성)트랜잭션끼리 서로 영향 X
Durability (지속성)커밋되면 영구 저장

핵심

트랜잭션 = 쪼갤 수 없는 작업 묶음

성공 → COMMIT (확정)
실패 → ROLLBACK (취소)

CSLOG에서 보기