InnoDB의 잠금 방식, 낙관적 잠금(Optimistic locking)과 비관적 잠금(Pessimistic locking)

비관적 잠금
- 현재 트랜잭션에서 변경하고자 하는 레코드에 대해 잠금을 획득하고 변경 작업을 처리하는 방식
- 현재 변경하려는 레코드를 다른 트랜잭션에서도 변경할 수 있기 때문에(비관적으로 생각..) 잠금을 획득함. 그래서 비관적 잠금이라고 부름
- 일반적으로 높은 동시성 처리에는 비관적 잠금이 유리하다고 알려져 있으며, InnoDB는 비관적 잠금 방식을 채택하고 있음
낙관적 잠금
- 각 트랜잭션이 같은 레코드를 변경할 가능성이 희박(낙관적으로 생각함..)할거라 생각해 변경 작업을 수행하고 마지막에 잠금 충돌이 있었는지 확인해 문제가 있었다면 Rollback하는 방식