본문 바로가기
스터디/Database

[DB] Locking (잠금 기법)

by zoodi 2021. 5. 28.
728x90

💡Locking 이란?

데이터베이스에서 Lock이란 트랜잭션 처리의 순차성을 보장하기 위한 방법이다. (트랜잭선 : DB의 나누어지지 않는 최소한의 작업 단위)

잠금 단위란 = 잠그는 단위

잠금 기법이란 = 하나의 트랜잭션이 데이터에 액세스 하는 동안 다른 트랜잭션이 그 데이터 항목에 접근할 수 없도록 하는 병행제어 기법.

Lockd은 잠금 기법에서 사용하는 데이터 객체이다.

 

🍒Lock 종류

- 공유 잠금 (Shared Lock)

공유 잠금은 데이터를 읽을 때 사용되어지는 Lock이다. 공유 잠금은 공유 잠금끼리 동시에 접근이 가능하다.

 

- 베타 잠금 (Exclusive Lock)

베타 잠금은 데이터를 변경하고자 할 때 사용되며, 트랜잭션이 완료 될 때까지 유지된다. 베타 잠금은 Lock이 해제 될 때까지 다른 트랜잭션이 해당 리소스에 접근 할 수 없다.(읽기 포함)

 

🍒Lock 설정 단위 & 장단점

잠금 단위로는 파일, 페이지와 블록, 테이블, 컬럼, 행과 같이 여러개의 단위로 나누어 질 수 있다.

잠근 단위의 크기에 따라서 장단점이 따른다.

 

잠금 단위가 크면 -> Lock의 수가 적어진다 -> 제어 기법이 간단해진다 -> 병행성이 감소한다.

잠금 단위가 작으면 -> Lock의 수가 많아진다 -> 제어 기법이 복잡해진다 -> 병행성이 증가한다.

 

 

728x90

'스터디 > Database' 카테고리의 다른 글

[DB] ACID란?  (0) 2021.07.04
[DB] 정규화 vs 반정규화(비정규화)  (0) 2021.07.04
[DB] 데이터 정규화 1NF, 2NF, 3NF, BCNF  (0) 2021.05.28
[DB] Transation / Undo / Redo  (0) 2021.05.17
DL (Data Lake)  (0) 2020.04.20

댓글