데이터베이스 트랜잭션과 잠금(셋째) - INNODBLOCKS, INNODB_LOCK_WAITS, INNODB_TRX 테이블 소개
6667 단어 데이터베이스
-- 트랜잭션 보기
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_STATE
가 LOCK WAIT
이면.그렇지 않으면NULL
.TRX_WAIT_STARTED
거래 시작 잠금 대기 시간
TRX_STATE
이 LOCK 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
마지막 키 오류에 대한 자세한 오류 메시지 (있을 경우);그렇지 않은 경우
NULL
TRX_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
;그렇지 않은 경우NULL
LOCK_PAGE 기록된 페이지 번호가
LOCK_TYPE
인 경우RECORD
;그렇지 않으면NULL
.LOCK_REC
페이지에 기록된 퇴적 번호가
LOCK_TYPE
일 경우RECORD
;그렇지 않으면NULL
.LOCK_DATA
자물쇠와 관련된 데이터입니다.
LOCK_TYPE
가 RECORD
이면 잠긴 기록의 키 값이고 그렇지 않으면NULL
.이 열에는 유효한 SQL 문자열 형식으로 행의 기본 키 열을 잠그는 값이 포함되어 있습니다.주 키가 없으면 LOCK_DATA
내부 행 ID 번호가 고유합니다 InnoDB
.키 값이나 범위가 색인에서 가장 큰 값보다 높은 간격을 잠그면 LOCK_DATA
supremum pseudo-record를 보고합니다.잠긴 레코드가 포함된 페이지가 버퍼에 없는 경우(잠금이 유지되는 경우 디스크로 페이지 나누기) InnoDB
불필요한 디스크 작업을 방지하기 위해 디스크에서 페이지를 가져오지 않습니다.반면LOCK_DATA
은 NULL
로 설정됐다.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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SQLite의 query로 망설임이것은 내가 처음 안드로이드 응용 프로그램 개발에서 망설이고, 그 후 해결 된 방법을 비망록으로 철자하고 있습니다. java에서 SQLite를 이용한 애플리케이션을 작성하는 동안 EditText에 입력된 item이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.