스터디/Database
[DB] Locking (잠금 기법)
zoodi
2021. 5. 28. 18:45
728x90
💡Locking 이란?
데이터베이스에서 Lock이란 트랜잭션 처리의 순차성을 보장하기 위한 방법이다. (트랜잭선 : DB의 나누어지지 않는 최소한의 작업 단위)
잠금 단위란 = 잠그는 단위
잠금 기법이란 = 하나의 트랜잭션이 데이터에 액세스 하는 동안 다른 트랜잭션이 그 데이터 항목에 접근할 수 없도록 하는 병행제어 기법.
Lockd은 잠금 기법에서 사용하는 데이터 객체이다.
🍒Lock 종류
- 공유 잠금 (Shared Lock)
공유 잠금은 데이터를 읽을 때 사용되어지는 Lock이다. 공유 잠금은 공유 잠금끼리 동시에 접근이 가능하다.
- 베타 잠금 (Exclusive Lock)
베타 잠금은 데이터를 변경하고자 할 때 사용되며, 트랜잭션이 완료 될 때까지 유지된다. 베타 잠금은 Lock이 해제 될 때까지 다른 트랜잭션이 해당 리소스에 접근 할 수 없다.(읽기 포함)
🍒Lock 설정 단위 & 장단점
잠금 단위로는 파일, 페이지와 블록, 테이블, 컬럼, 행과 같이 여러개의 단위로 나누어 질 수 있다.
잠근 단위의 크기에 따라서 장단점이 따른다.
잠금 단위가 크면 -> Lock의 수가 적어진다 -> 제어 기법이 간단해진다 -> 병행성이 감소한다.
잠금 단위가 작으면 -> Lock의 수가 많아진다 -> 제어 기법이 복잡해진다 -> 병행성이 증가한다.
728x90