DB/MySQL

MySQL의 락

행운개발자 2024. 3. 18. 22:52
728x90

글로벌 락

글로벌 락은 MySQL에서 제공하는 락 중에서 가장 범위가 큽니다. 일단 하나의 세션에서 글로벌 락을 획득하면 다른 세션에서 SELECT를 제외한 다른 대부분의 DDL, DML 문장이 대기 상태로 됩니다. 글로벌 락이 영향을 미치는 범위는 MySQL 서버 전체이며, 작업 대상 테이블이나 데이터베이스의 범위를 넘어섭니다.

글로벌 락은 여러 데이터베이스에 존재하는 MyISAM이나 Memory 테이블에 대해서 mysqldump로 일관된 백업을 받아야 할 때 사용합니다. InnoDB는 트랜잭션을 지원하기 때문에 일관된 데이터 상태를 위해 모든 데이터 변경 작업을 멈출 필요는 없습니다.

글로벌 락은 FLUSH TABLES WITH READ LOCK 명령어로 획득할 수 있습니다. 이 작업은 모든 읽기 작업을 flush할 때까지 기다려야하기 때문에 시간이 좀 걸릴 수 있습니다.

백업 락

8.0 버전부터는 백업을 위한 백업 락이 도입되었습니다. 백업 락을 획득하면 모든 세션에서 스키마나 사용자의 인증 관련 정보를 변경할 수 없게 됩니다.

  • 데이터 베이스 및 테이블 등 모든 객체 생성 및 변경, 삭제
  • 사용자 관리 및 비밀번호 변경 등

하지만 백업 락에서는 일반적인 테이블의 데이터 변경은 허용됩니다.

728x90

'DB > MySQL' 카테고리의 다른 글

MySQL 쿼리 실행 구조  (0) 2024.01.28
MySQL 메모리 구조  (0) 2024.01.28
MySQL 멀티 쓰레딩  (0) 2024.01.28
MySQL 아키텍처  (0) 2024.01.28
MySQL 시스템 변수 조회 및 변경  (0) 2024.01.28