트랜잭션이 필요한 이유
상황 : 홍길동이 김국밥에게 900원을 송금
- READ (홍길동 잔고)
- UPDATE (김국밥 잔액) = 김국밥 잔액 + 900
3. UPDATE(홍길동 잔액) = 홍길동 잔액 - 900
문제1. 만약 3번 과정(UPDATE(홍길동 잔액) = 홍길동 잔액 - 900)에서 실패를 한다면?
따라서 SQL문을 마치 하나의 오퍼레이션으로 묶을 수 있어야 함 : 트랜잭션
→ 1~3번 과정을 하나의 오퍼레이션으로 묶을 수 있어야 함
문제2. 2번 과정후 3번 과정 전 사이에 김국밥이 1400원을 출금해버린다면?
→ 3번 과정은 실패를 할 것임
따라서, 처리 중인 데이터를 다른 곳에서 조회하게 되면 문제가 발생
→ 트랜잭션 격리레벨을 따로 지정할 수 있어야 함
2023 KAKAO Tech Campus_BackEnd 필수 과정
DB(MySQL) 강의 정리 내용입니다.
'CS > 데이터베이스' 카테고리의 다른 글
데이터 정합성 보장을 위한 트랜잭션 이해하기 - 04. 트랜잭션 격리레벨 (0) | 2023.06.07 |
---|---|
데이터 정합성 보장을 위한 트랜잭션 이해하기 - 02. 트랜잭션 A, C, I, D (0) | 2023.06.07 |
타임라인 최적화 - 06. 타임라인에서 배우는 트레이드 오프 (0) | 2023.06.06 |
타임라인 최적화 - 04. 팬아웃 타임라인 이론 (0) | 2023.06.06 |
타임라인 최적화 - 03. 서비스가 커질수록 느려지는 타임라인 (0) | 2023.06.06 |