Table Lock
멀티 트랜잭션 환경
에서 데이터베이스의 일관성
과 무결성
을 유지하기 위해서 트랜잭션의 순차적 진행
을 보장할 수 있어야 한다.
이를 위해 Lock 기술이 등장했다.
Shared Lock(또는 Read Lock)
- 원하는 데이터에 Lock을 걸었지만 다른 세션에서 읽을 수 있다.
- Shared Lock은 허용되지만, Exclusive Lock은 불가능하다.
- 데이터를 다른 사용자가 동시 읽기만 가능하되 변경은 불가능하다.
Exclusive Lock(또는 Write Lock)
- Lock이 해제되기 전까지는 다른 세션에서 읽기, 쓰기 불가능하다.
- Share Lock, Exclusive Lock 불가능하다.
- 데이터 변경 시 사용되며, 트랜잭션이 완료될 때까지 유지된다.
PostgreSQL Table Lock 호환성
- Table Lock Mode에 따라 공존할 수 있는 Lock이 있고, Conflict가 나는 Lock이 있다.