[MySQL] MySQL에서의 트랜잭션과 잠금 분석
·
Backend/DB
동시성에 대한 처리를 위한 잠금과, 데이터 정합성을 위한 트랜잭션을 MySQL에서는 어떻게 다루고 있는지 분석합니다.MySQL 트랜잭션 트랜잭션은 꼭 여러 개의 변경 작업을 수행하는 쿼리가 조합됐을 때만 의미 있는 개념은 아닙니다. 트랜잭션은 하나의 논리적인 작업 셋에 하나의 쿼리가 있든 두 개 이상의 쿼리가 있는 관계없이 논리적인 작업 셋 자체가 100% 적용되거나 아무것도 적용되지 않아야 함을 보장해 주는 것입니다. 다음은 이에 대한 예시를 MyISAM과 InnoDB의 쿼리 동작 차이로 풀어낸 것입니다.INSERT INTO tab_myisam (fdpk) VALUES (3);INSERT INTO tab_innodb (fdpk) VALUES (3);SET autocommit=ON;INSERT IN..