MySQL에서 트랜잭션 충돌 해결 방법: 데드락과 락 대기 방지하기
MySQL에서 트랜잭션은 데이터 무결성을 보장하는 중요한 기능이지만, 동시에 충돌(conflict)과 데드락(deadlock)의 원인이 되기도 합니다.실무에서 자주 마주치는 트랜잭션 충돌 유형과 그 해결 방안을 정리해보겠습니다. 트랜잭션 충돌이란?두 개 이상의 트랜잭션이 동시에 동일한 자원(레코드)을 수정하거나 조회하려 할 때, 잠금(LOCK)이 발생하고 대기가 길어지거나 데드락으로 이어질 수 있습니다.주요 충돌 유형락 대기(Lock Wait): 한 트랜잭션이 잠근 자원을 다른 트랜잭션이 기다리는 상태데드락(Deadlock): 서로가 필요한 자원을 상대가 보유하고 있어 무한 대기 상태갱신 손실(Lost Update): 동시에 업데이트해 이전 값이 사라지는 문제 데드락 방지 및 해결 방법1. 트랜잭션 범위..