본문 바로가기
DB

[MySQL] 락 (lock) 확인 하고 해제 하는 방법

by 세바개님 2023. 3. 10.

MySQL에서 락(lock)은 여러 클라이언트 사이에서 데이터의 일관성을 보장하기 위해 사용되는 메커니즘입니다. 락은 여러 클라이언트가 동시에 같은 데이터를 변경하려고 할 때, 각 클라이언트가 한 번에 하나의 작업만 수행하도록 합니다. 따라서, 락은 데이터 무결성을 보장하기 위한 매우 중요한 요소입니다.

1. 락(lock) 확인하기


SHOW OPEN TABLES 명령어를 사용하여 현재 열려있는 테이블 목록과 락 정보를 확인할 수 있습니다.

SHOW OPEN TABLES WHERE In_Use > 0;

SHOW PROCESSLIST 명령어를 사용하여 현재 실행 중인 쿼리 목록과 해당 쿼리가 락을 소유하고 있는지 여부를 확인 할 수 있습니다.

SHOW PROCESSLIST;

명령어를 사용하여 InnoDB 엔진에서 사용되는 락 정보를 확인할 수 있습니다.

SELECT * FROM information_schema.INNODB_LOCKS;

2. 락(lock) 해제하기


KILL 명령어를 사용하여 해당 쿼리를 취소하고 락을 해제할 수 있습니다.

KILL <PROCESS_ID>;

명령어를 사용하여 명시적으로 락을 해제할 수 있습니다. 이때, lock_name은 GET_LOCK() 함수를 사용하여 생성한 락의 이름입니다.

SELECT RELEASE_LOCK('lock_name');

댓글