MySQL의 동시성에 영향을 미치는 Lock, 트랜잭션, 트랜잭션 격리 수준(Isolation level)에 대해 다루는 장이다.
트랜잭션 : 작업의 완전성을 보장해 주는 것. 논리적인 작업 셋을 완벽하게 처리하거나, 처리하지 못할 경우에는 원 상태로 복구해서 작업의 일부만 적용되는 현상(Partial Update)가 발생하지 않도록 만들어 주는 기능.
다루는 내용 : 트랜잭션을 지원하지 않는 MyISAM과 트랜잭션을 지원하는 InnoDB의 처리 방식의 차이 비교
트랜잭션은 하나의 논리적인 작업 셋에 하나의 쿼리가 있든 두개 이상의 쿼리가 있든 관계없이 논리적인 작업 셋 자체가 모두 적용되거나 아무것도 적용되지 않는 것. (COMMIT / ROLLBACK)
트랜잭션이 중요한 이유 : 그만큼 애플리케이션에서 고민해야 할 문제를 줄여주는 아주 필수적인 DBMS의 기능.
부분 업데이트 현상이 발생하면 실패한 쿼리로 인해 남은 레코드를 다시 삭제하는 재처리 작업이 필요할 수 있음
트랜잭션 지원하지 않는 MyISAM에서 IF-ELSE
를 통해서 비즈니스 로직 처리를 하나하나 해줘야 한다!