데드 락
-
DB - 블로킹(Blocking)과 데드 락(Deadlock)DB 2024. 11. 11. 22:27
블로킹(Blocking)정의:한 트랜잭션이 자원(테이블, 행 등)을 Lock 하고 있을 때, 다른 트랜잭션이 해당 자원에 접근하지 못하고 기다리는 현상특징:일시적인 현상으로, Lock 이 해제되면 자연스럽게 해결됨정상적인 데이터베이스 동작의 일부데이터 일관성을 보장하기 위한 매커니즘예시 코드)-- 블로킹 예시-- 트랜잭션 1BEGIN;UPDATE accounts SET balance = balance - 100 WHERE id = 1;-- 여기서 잠시 멈춤 (아직 COMMIT하지 않음)-- 트랜잭션 2 (동시 실행)BEGIN;UPDATE accounts SET balance = balance + 50 WHERE id = 1; -- 트랜잭션 1이 COMMIT할 때까지 대기 (블로킹) 데드 락(Deadlo..