shared lock 과 exclusive lock 관련 질문 있습니다! 0 4 1,178

by hun [SQL Query] lock shared lock exclusive lock [2021.01.25 22:53:12]


안녕하세요. lock 관련 공부하다 이해가 안가는게 있어서 질문합니다.

아래 쿼리는 MariaDB 10.5.8 에서 테스트 하였습니다.

start transaction;
select * from User where ID=2 lock in share mode;
update User set USERNAME = 'abc' where id=2;
commit;

위와 같은 트랜잭션이 있을때 select 문에서 User 테이블의 ID가 2번인 row에 shared lock이 걸린 뒤 update 문에 의해 exclusive lock이 걸리는 건가요 아니면 shared lock이 그대로 유지가 되는 건가요?

shared lock과 exclusive lock는 서로 배타적이라 shared lock 유지될 것이라 추측하는데, 정확한 답을 못찾아서 질문 합니다.

귀한 시간 내주셔서 감사합니다

by 마농 [2021.01.26 08:54:38]

exclusive lock 이 걸리고 shared lock 이 풀립니다.


by hun [2021.01.26 21:31:26]

감사합니다! 그러면 id가 2인 row는 트랜잭션이 끝날 때 까지 exclusive lock이 지속되는 건가요?


by 마농 [2021.01.26 21:45:35]

네. 맞습니다.


by hun [2021.01.26 22:42:51]

늦은 시간에도 답변달아 주시고 감사합니다!

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입