![[MySQL] 트랜잭션 격리수준(isolation level)과 이상현상 (with 테스트 코드)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FME52v%2FbtsKYfksHvd%2FAAAAAAAAAAAAAAAAAAAAAIPYCo0FTGTg5lRCjjjLbhz_x9Tft8umjDel2MbvPjfg%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DKC5z2q5FeOc6eaygV%252B%252F2bXCgTfk%253D)
Tech/데이터베이스2024. 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..