DB2024. 11. 27. 14:56[MySQL] 트랜잭션 격리수준(isolation level)과 이상현상 (with 테스트 코드)
기억에 오래남고 이해하기 쉽게 현재 조직의 웨딩 도메인의 적립금을 예시로 간단한 엔터티 설계와 더불어 테스트 코드를 작성하여 각 격리수준과 이에 따른 이상현상을 정리해보았다. 개념들은 MySQL의 공식문서를 활용하여 정리하였고, AUTO_COMMIT은 FALSE를 가정하고 예제들을 작성하였다. (예제에 필요한 기본적인 엔터티와 데이터 세팅은 아래를 참조) CREATE TABLE icash ( no INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, user_no INT UNSIGNED UNIQUE NOT NULL, icash INT UNSIGNED DEFAULT 0 NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTA..