테스트 결과 다음과 같은 상황에서는 테이블 잠금이 발생하는 것으로 나타났습니다 1.like 2.update, 무조건 작업 삭제 3.update, 조건부 작업 삭제(기본 키 작업 제외) No 선택이 조건부인지 무조건인지, 조건이 기본 키인지 인덱스인지에 관계없이 테이블이 잠기지 않습니까? 내 테스트에 문제가 있나요?
select는 select ... FOR UPDATE와 같은 공유 잠금, 독점 잠금 등 다양한 수준의 잠금을 지정할 수 있습니다. 잠금이 필요한 이유에 대한 간단한 예는 다음과 같습니다. 예를 들어 이전 문서에서 상속된 문서가 있는 경우 읽기 잠금을 추가하고 이전 문서를 잠가서 다른 사람이 이전 문서를 수정하지 못하도록 할 수 있습니다. 제출하기 전에 데이터 불일치가 발생합니다.
select는
select ... FOR UPDATE
와 같은 공유 잠금, 독점 잠금 등 다양한 수준의 잠금을 지정할 수 있습니다.잠금이 필요한 이유에 대한 간단한 예는 다음과 같습니다. 예를 들어 이전 문서에서 상속된 문서가 있는 경우 읽기 잠금을 추가하고 이전 문서를 잠가서 다른 사람이 이전 문서를 수정하지 못하도록 할 수 있습니다. 제출하기 전에 데이터 불일치가 발생합니다.
조건에 기본 키가 포함되어 있지 않거나 기본 키가 포함되어 있지만 등호 또는 IN이 아닌 한, 질문의 세 가지 상황을 모두 포함하는 전체 테이블이 잠깁니다.
전체 테이블을 잠그거나 몇 행을 잠그는 것인지, 읽기 잠금 추가를 선택하고 쓰기 잠금 추가 및 업데이트를 삭제하는지 Google에서 검색할 수 있습니다. 자세한 내용은 Transaction Isolation Level을 참조하세요. 여기서는 다루지 않겠습니다.