1) Shared Lock = Read Lock

SELECT 실행 => Shared Lock 설정 => Shared Lock이 걸린 데이터를 다른 트랜잭션들이 단순히 읽어 들여 Shared Lock을 계속 걸 수는 있지만 UPDATE/DELETE 실행(Exclusive Lock)은 불가능하다. 역시, 다른 트랜잭션에 의해 Exclusive Lock(INSERT/UPDATE/DELETE)이 걸린 데이터에는 Shared Lock(SELECT)을 걸 수 없어 읽을 수 없다.

2) Exclusive Lock = Write Lock

INSERT/UPDATE/DELETE 실행 => Exclusive Lock 설정 => 해당 트랜잭션이 완료될 때까지 유지되어 다른 트랜잭션은 해당 데이터에 접근(SELECT/UPDATE/DELETE)할 수 없다. 즉, 다른 트랜잭션에 의해 Shared/Exclusive Lock이 걸린 데이터에는 Shared Lock(SELECT), Exclusive Lock(UPDATE/DELETE)을 걸 수 없다.

+ Recent posts