[Real MySQL1] MySQL의 트랜잭션과 잠금
MySQL의 트랜잭션과 잠금 — 왜 이 둘을 함께 이해해야 할까?처음에는 트랜잭션과 잠금이 같은 개념인 줄 알았습니다. 둘 다 "데이터를 안전하게 지키는 것" 아닌가 싶었습니다.하지만 공부할수록 이 둘은 목적 자체가 다르다는 걸 알게 되었습니다.트랜잭션은 정합성을 위한 것이고, 잠금은 동시성을 제어하기 위한 것입니다.1. 트랜잭션 — 전부 성공하거나, 전부 실패하거나트랜잭션이 필요한 이유는 단순합니다. 여러 쿼리를 하나의 작업 단위로 묶어야 할 때가 있기 때문입니다.예를 들어, 은행 이체를 생각해 보겠습니다. A 계좌에서 금액을 차감하고, B 계좌에 동일한 금액을 추가해야 합니다. 만약 차감은 성공했는데 추가 도중 오류가 발생한다면 어떻게 될까요? A의 돈은 사라졌는데 B에는 들어오지 않는 상황이 됩니다..