14.14.2 InnoDB INFORMATION_SCHEMA 트랜잭션과 잠금 테이블
3 개의 InnoDB
INFORMATION_SCHEMA
테이블을 사용하면 트랜잭션 모니터링 및 수있는 잠금 문제의 진단이 용이합니다. 이러한 3 개의 테이블은 INNODB_TRX
, INNODB_LOCKS
및 INNODB_LOCK_WAITS
입니다.
INNODB_TRX
: 현재InnoDB
내부에서 실행중인 모든 트랜잭션에 대한 정보가 포함되어 있습니다. 여기에는 트랜잭션이 잠금을 대기하고 있는지 그 트랜잭션이 언제 시작되었는지 그 트랜잭션이 실행하는 특정 SQL 문 등이 포함됩니다.INNODB_LOCKS
: 다른 트랜잭션이 잠금을 해제하기를 대기하고있는 InnoDB의 각 트랜잭션 (INNODB_TRX.TRX_STATE='LOCK WAIT'
)은 하나의 "차단하는 잠금 요청"에 의해 차단됩니다. 그 차단하는 잠금 요청은 호환되지 않는 모드에있는 다른 트랜잭션에 의해 유지되는 행 잠금 또는 테이블 잠금에 대한 것입니다. 대기중인 트랜잭션 또는 차단 된 트랜잭션은 다른 트랜잭션이 커밋 또는 롤백 요청 된 잠금을 해제 할 때까지 계속할 수 없습니다.INNODB_LOCKS
은 차단 된 각 트랜잭션에 대해 트랜잭션이 요구하며 대기하고있는 각 자물쇠를 기술 한 줄이 포함되어 있습니다.INNODB_LOCKS
는 또한 잠금을 보유하고있는 트랜잭션의 상태 ('RUNNING'
,'LOCK WAIT'
,'ROLLING BACK'
또는'COMMITTING'
)에 관계없이 다른 트랜잭션을 차단하는 잠금 당 줄도 포함되어 있습니다. 트랜잭션을 차단하는 잠금을 사용하여 요청 된 잠금 모드와 호환되지 않는 모드 (읽기 및 쓰기 공유 및 독점 등)에 보관되어 있습니다.INNODB_LOCK_WAITS
:이 테이블을 사용하면 특정 잠금 어떤 트랜잭션이 대기하고있다거나 특정 트랜잭션이 어떤 락을 대기하고 있는지 알 수 있습니다. 이 테이블에는 차단 된 각 트랜잭션에 대해 트랜잭션이 요구 한 잠금 요청을 차단하는 잠금을 나타내는 하나 이상의 행이 포함되어 있습니다.REQUESTED_LOCK_ID
는 트랜잭션이 요구하는 잠금을 보여BLOCKING_LOCK_ID
은 첫 번째 트랜잭션의 진행을 방해하는 (다른 트랜잭션에 의해 유지되는) 잠금을 보여줍니다. 차단 된 특정 어떤 거래도INNODB_LOCK_WAITS
의 모든 행이REQUESTED_LOCK_ID
대해 동일한 값을 또BLOCKING_LOCK_ID
대해서는 다른 값을 가지고 있습니다.