- InnoDB는 기본적으로 ‘행 단위 락’을 사용하지만, 테이블 단위 락도 존재
- 테이블 전체를 잠그는 방식
- 동시성 낮아지는 대신 데이터 정합성 강하게 보장
- 테이블 락이 걸려있는 동안, 다른 트랜잭션은 해당 테이블에 대한
- SELECT
- INSERT
- UPDATE
- DELETE
- 불가
LOCK TABLES table_name READ -- 읽기 전용 락(읽기는 가능)
LOCK TABLES table_name WRITE; -- 쓰기 락 (읽지도 마라)
UNLOCK TABLES; -- 락 해제사용예시
- 테이블 백업시(READ LOCK)
- 백업동안 테이블 변경 노노
- 따라서, 테이블 전체에 READ LOCK걸고 백업 수행
- 데이터 마이그레이션 시(WRITE LOCK)
- 특정 테이블 데이터 마이그레이션시, 데이터 읽거나 변경되면 안됨
- 따라서, 테이블 전체에 WRITE LOCK걸고 마이크레이션을 수행