김영한님의 DB 강의를 보고 정리하여 작성한 글 입니다. 자세한 내용은 강의를 참고해주시기 바랍니다. https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-db-1/dashboard
각 세션에서 트랜잭션을 진행중일 때 같은 데이터를 수정하게 되면 트랜잭션의 원자성이 깨지게 되고, 세션 1에서 롤백을 할 경우 세션 2는 잘못된 데이터를 수정하게 되는 등 여러 문제가 발생하게 된다.
이런 문제를 방지하기 위해 사용되는 것이 DB의 Lock이다.
락을 획득하는 기준
일반적인 데이터 조회는 lock을 사용하지 않는다.
세션 1에서 lock을 획득하여 데이터를 변경하는 작업 중이어도 세션2에서 데이터를 조회는 할 수 있다. 조회 시점부터 lock을 획득하고 싶다면 select for update 구문을 사용하면 조회 시점에 lock획득하여 다른 세션에서 해당 데이터를 변경할 수 없다.
잘 이해하고 갑니댜