• 학습 목표
    • MySQL 의 기본 기능
      • Transaction (매우매우 중요)
      • Isolation Level
      • Database Lock
  • 글로벌락
    • flush tables with read lock;
    • DB 전체의 락을 생성 (read 만 가능)
    • 데이터베이스 범위도 적용됨
    • MySQL dump 시 내부적으로 적용
  • 테이블락
    • lock tables {tableName} read; → read 만 가능
    • lock tables {tableName} write; → read 도 불가능
      • read/write 정확한 차이 찾아보기
    • 특정 테이블의 락을 생성
    • InnoDB 의 경우 트랜잭션이 있기 때문에 사용하지 않음
  • 네임드락
    • 상황에 맞는 다양한 락 생성(범위는 글로벌락과 같음), 뮤텍스와 유사
      • 네임드락 범위 및 생성 방법 찾아보기
    • select get_lock(’wanted’, 10);
      • 10초동안 락 생성
    • select is_free_lock(’wanted’);
      • 네임드락의 사용 여부 반환(true/false)
    • select release_lock(’wanted’);
      • 네임드락 해제
    • 분산 시스템에서 다양한 활용 가능(강사의 개인적인 생각)
  • 메타데이터락
  • 레코드락
  • 오토인크리먼트락
  • 면접질문
    • 격리수준
      • READ UNCOMMITTED
      • READ COMMITTED
      • REPEATABLE READ
        • UPDATE 시 스냅샷의 내용을 수정하는지 디스크의 내용을 수정하는지 찾아보기
      • SERIALIZABLE