데이터베이스 트랜잭션과 잠금(셋째) - INNODBLOCKS, INNODB_LOCK_WAITS, INNODB_TRX 테이블 소개

6667 단어 데이터베이스
INNODB_LOCKS, INNODB_LOCK_WAITS, INNODB_TRX는 MYSQL의 트랜잭션 및 잠금 관련 테이블입니다.일반적으로 트랜잭션 시간 초과 또는 잠금 관련 문제가 발생하면 다음과 같은 SQL 문을 실행하여 간단히 확인할 수 있습니다.
-- 트랜잭션 보기
select * from information_schema.INNODB_TRX;
-- 잠금 보기
select * from information_schema.INNODB_LOCKS;
-- 잠금 대기 보기
select * from information_schema.INNODB_LOCK_WAITS;
 
다음은 각 표를 소개하겠습니다.
INNODB_TRX: 현재 내부에서 실행 중인 모든 업무에 대한 정보를 제공합니다. 잠금을 기다리고 있는지, 작업이 언제 시작되는지, 그리고 작업이 실행 중인 SQL 문장을 포함합니다.상세히 보다https://dev.mysql.com/doc/refman/5.7/en/innodb-trx-table.html
열명
묘사
TRX_ID
트랜잭션 ID
TRX_WEIGHT
사무의 중요성, 변경된 줄 수와 사무가 잠긴 줄 수를 반영합니다.사라진 자물쇠를 해결하려면 InnoDB 권중이 가장 적은 사무를 스크롤하는 피해자로 선택하십시오.변경과 잠금 줄의 수량에 상관없이, 비사무표를 변경한 사무는 다른 사무보다 더 무겁다고 여겨집니다.
TRX_STATE
트랜잭션 실행 상태.허용치는 RUNNING,LOCK WAIT,ROLLING BACK,와COMMITTING이다.
TRX_STARTED
거래 시작 시간.
TRX_REQUESTED_LOCK_ID
사무가 현재 기다리고 있는 자물쇠의 ID입니다. TRX_STATELOCK WAIT 이면.그렇지 않으면NULL.
TRX_WAIT_STARTED
거래 시작 잠금 대기 시간TRX_STATELOCK WAIT이라면;그렇지 않으면NULL.
TRX_MYSQL_THREAD_ID
Show processlist의 ID 값에 해당하는 MySQL 스레드 ID
TRX_QUERY
트랜잭션 실행 중인 SQL 문
TRX_OPERATION_STATE
거래의 현재 조작이 있다면;그렇지 않으면NULL.
TRX_TABLES_IN_USE InnoDB 이 트랜잭션의 현재 SQL 문을 처리할 때 사용되는 테이블 수입니다.
TRX_TABLES_LOCKED InnoDB 현재 SQL 문에 행 잠금이 있는 테이블의 수입니다.(이것들은 시계 자물쇠가 아니라 줄 자물쇠이기 때문에, 일부 줄이 잠겨 있지만, 보통 여러 개의 업무를 통해 시계를 읽고 쓸 수 있다.)
TRX_LOCK_STRUCTS
사무가 보존된 자물쇠 수입니다.
TRX_LOCK_MEMORY_BYTES
메모리에서 이 업무의 잠금 구조가 차지하는 총 크기
TRX_ROWS_LOCKED
이 거래가 잠긴 대략적인 숫자나 행수.이 값은 실제 존재하지만 업무에 보이지 않는 삭제 표시 줄을 포함할 수 있습니다
TRX_ROWS_MODIFIED
이 사무에서 수정되고 삽입된 줄 수입니다.
TRX_CONCURRENCY_TICKETS
현재 업무가 바뀌기 전에 얼마나 많은 작업을 수행할 수 있는지 표시하는 값
TRX_ISOLATION_LEVEL
현재 업무의 격리 단계.
TRX_UNIQUE_CHECKS
현재 사무에 대한 유일한 검사를 열거나 닫을지 여부입니다.예를 들어 대량 데이터를 불러오는 동안 닫을 수 있습니다
TRX_FOREIGN_KEY_CHECKS
현재 업무를 위한 키 검사를 열거나 닫을지 여부입니다.예를 들어 대량 데이터를 불러오는 동안 닫을 수 있습니다
TRX_LAST_FOREIGN_KEY_ERROR
마지막 키 오류에 대한 자세한 오류 메시지 (있을 경우);그렇지 않은 경우NULLTRX_ADAPTIVE_HASH_LATCHED
해시 인덱스가 현재 업무에 잠겨 있는지 확인하십시오.자가 적응 해시 인덱스 검색 시스템이 구분될 때, 하나의 업무는 전체 자가 적응 해시 인덱스를 잠그지 않습니다.사용자 적응 해시 인덱스 구역은 innodb_adaptive_hash_index_parts이고 기본값은 8입니다.
TRX_ADAPTIVE_HASH_TIMEOUT
해시 인덱스에 적응하기 위해 검색 잠금 메모리를 포기하거나 MySQL 호출 사이에 저장할지 여부입니다.해시 인덱스 분쟁에 적응하지 않았을 때, 이 값은 0으로 유지되며, 문장은 끝날 때까지 잠금 메모리를 유지합니다.경합 기간 동안, 카운트다운을 0으로 하고, 문장은 줄을 찾을 때마다 잠금 메모리를 방출합니다.산열 인덱스 검색 시스템이 구역별로 구분될 때 (제어됨 innodb_adaptive_hash_index_parts 이 값은 0으로 유지됩니다.
TRX_IS_READ_ONLY
값이 1이면 트랜잭션이 읽기 전용임을 나타냅니다.
TRX_AUTOCOMMIT_NON_LOCKING
값이 1이면 사무가 SELECT or 또는 FOR UPDATE 자구를 사용하지 않고 실행 중이며 LOCK IN SHARED MODE 사무는 이 문구만 포함됩니다.이 열과autocommit가 모두 1일 경우TRX_IS_READ_ONLY 테이블 데이터 변경과 관련된 비용을 줄이기 위해 사무를 최적화한다.
 
INNODB_LOCKS: InnoDB 사무가 요청되었지만 아직 얻지 못한 모든 자물쇠에 대한 정보와 사무가 가지고 있는 다른 사무를 막는 모든 자물쇠를 제공합니다.
상세히 보다https://dev.mysql.com/doc/refman/5.7/en/innodb-locks-table.html
열명
묘사
LOCK_ID
고유한 잠금 ID 번호, 내부 번호InnoDB.
LOCK_TRX_ID
잠긴 거래의 ID
LOCK_MODE
잠금을 요청하는 방법입니다.잠금 모드 설명자InnoDB, S, X, IS, IX, GAP, AUTO_INC, 및 UNKNOWN를 허용합니다.잠금 모드 설명자를 조합해서 사용하면 특정한 잠금 모드를 식별할 수 있습니다.
LOCK_TYPE
자물쇠 유형
LOCK_TABLE
잠겼거나 잠긴 기록을 포함하는 테이블의 이름
LOCK_INDEX
LOCK 의 경우 인덱스 이름TYPE는 RECORD입니다.그렇지 않으면 NULL
LOCK_SPACE
기록을 잠그는 테이블 공간 ID가 LOCK_TYPE인 경우RECORD;그렇지 않은 경우NULLLOCK_PAGE
기록된 페이지 번호가 LOCK_TYPE인 경우RECORD;그렇지 않으면NULL.
LOCK_REC
페이지에 기록된 퇴적 번호가 LOCK_TYPE일 경우RECORD;그렇지 않으면NULL.
LOCK_DATA
자물쇠와 관련된 데이터입니다.LOCK_TYPERECORD이면 잠긴 기록의 키 값이고 그렇지 않으면NULL.이 열에는 유효한 SQL 문자열 형식으로 행의 기본 키 열을 잠그는 값이 포함되어 있습니다.주 키가 없으면 LOCK_DATA 내부 행 ID 번호가 고유합니다 InnoDB.키 값이나 범위가 색인에서 가장 큰 값보다 높은 간격을 잠그면 LOCK_DATA supremum pseudo-record를 보고합니다.잠긴 레코드가 포함된 페이지가 버퍼에 없는 경우(잠금이 유지되는 경우 디스크로 페이지 나누기) InnoDB 불필요한 디스크 작업을 방지하기 위해 디스크에서 페이지를 가져오지 않습니다.반면LOCK_DATANULL로 설정됐다.
 
INNODB_LOCK_WAITS: InnoDB 업무를 막는 모든 줄을 포함하고 요청한 자물쇠와 요청을 막는 모든 자물쇠를 표시합니다.상세히 보다https://dev.mysql.com/doc/refman/5.7/en/innodb-lock-waits-table.html
열명
묘사
REQUESTING_TRX_ID
요청(차단) 트랜잭션의 ID입니다.
REQUESTED_LOCK_ID
트랜잭션이 대기 중인 자물쇠의 ID입니다.
BLOCKING_TRX_ID
트랜잭션 차단 ID입니다.
BLOCKING_LOCK_ID
다른 트랜잭션이 진행되지 않도록 차단하는 사무소의 잠금 ID

좋은 웹페이지 즐겨찾기