MySQL에서의 트랜잭션
-
MyISAM은 트랜잭션을 지원하지 않음
-
InnoDB는 트랜잭션을 지원함
-
InnoDB 엔진은 쿼리 중 일부라도 오류가 발생하면 전체를 원상태로 만들어 두는 트랜잭션의 원칙을 따른다.
-
MyISAM은 일부 오류가 발생하는 경우 부분 업데이트(Partial Update) 현상이 발생한다.
-
부분 업데이트 현상은 데이터의 정합성을 맞추는 작업을 어렵게 만든다.
-
트랜잭션이란 애플리케이션 개발에서 고민해야할 문제를 줄여 주는 아주 필수적인 DBMS의 기능이다.
트랜잭션 구현시 주의사항
-
트랜잭션은 DBMS 커넥션과 마찬가지로 꼭 필요한 최소의 코드에만 적용해야 한다. (프로그램 코드에서 트랜잭션의 범위를 최소화)
-
외부 네트워크 작업(메일, 큐 발송 등)은 반드시 트랜잭션에서 배제해야 한다. (롱트랜잭션 발생 가능)