21.29.4 INFORMATION_SCHEMA INNODB_TRX 테이블
INNODB_TRX
테이블에 트랜잭션이 잠금을 대기하고 있는지 트랜잭션이 시작되었을 때 트랜잭션이 실행하는 SQL 문 (존재하는 경우) 등 InnoDB
내부에서 현재 실행중인 (읽기 전용 트랜잭션을 제외 ) 모든 트랜잭션에 대한 정보가 포함되어 있습니다.
표 21.4 INNODB_TRX 컬럼
컬럼 이름 | 설명 |
---|---|
TRX_ID | InnoDB 내부의 고유 한 트랜잭션 ID 번호. (MySQL 5.6 이후 이러한 ID는 읽기 전용 비 잠금 트랜잭션에서는 생성되지 않습니다. 자세한 내용은 섹션 14.13.14 "InnoDB의 읽기 전용 트랜잭션 최적화" 를 참조하십시오.) |
TRX_WEIGHT | 트랜잭션의 무게. 이것은 트랜잭션이 변경 한 행의 수와 잠긴 행의 수를 반영한 것입니다 (그러나 반드시 정확한 수는 없습니다). 교착 상태를 해결하기 위해 InnoDB 는 롤백 "대상"으로 가중치가 가장 작은 트랜잭션을 선택합니다. 비 트랜잭션 테이블을 변경 한 트랜잭션이 변경된 행 및 잠긴 행의 수에 관계없이 다른 트랜잭션보다 가중치가 높은 것으로 간주됩니다. |
TRX_STATE | 트랜잭션 실행 상태. RUNNING , LOCK WAIT , ROLLING BACK 또는 COMMITTING 중 하나입니다. |
TRX_STARTED | 트랜잭션의 시작 시간. |
TRX_REQUESTED_LOCK_ID | 트랜잭션이 현재 대기하고있는 잠금 ID ( TRX_STATE 가 LOCK WAIT 인 경우 그렇지는 NULL ). 잠금에 대한 자세한 내용은 LOCK_ID 에서 INNODB_LOCKS 과 결합해서 볼 수 있습니다. |
TRX_WAIT_STARTED | 트랜잭션이 잠금을 대기 시작한 시간 ( TRX_STATE 가 LOCK WAIT 의 경우 그렇지는 NULL ). |
TRX_MYSQL_THREAD_ID | MySQL 스레드 ID입니다. ID 에서 PROCESSLIST 와 결합하는 경우에 사용할 수 있습니다. 섹션 14.14.2.3.1 "PROCESSLIST 데이터 불일치의 가능성" 을 참조하십시오. |
TRX_QUERY | 트랜잭션이 실행되는 SQL 쿼리. |
TRX_OPERATION_STATE | 트랜잭션의 작동 또는 NULL . |
TRX_TABLES_IN_USE | 이 트랜잭션의 현재 SQL 문을 처리 할 때 사용되는 InnoDB 테이블의 숫자. |
TRX_TABLES_LOCKED | 현재 SQL 문이 행 잠금을 가지고, InnoDB 테이블의 숫자. (이들은 테이블 잠금 대신 행 잠금이므로 일부 행이 잠겨 있는지 여부에 관계없이 일반적으로 여러 트랜잭션의 테이블에서 읽고 테이블에 쓸 수 있습니다.) |
TRX_LOCK_STRUCTS | 트랜잭션에 예약 된 잠금의 수 |
TRX_LOCK_MEMORY_BYTES | 이 트랜잭션의 잠금 구조에 의해 메모리에서 사용 된 전체 크기입니다. |
TRX_ROWS_LOCKED | 이 트랜잭션에 의해 잠긴 행의 개수. 이 값은 물리적으로 존재하지만 트랜잭션에서 인식 할 수없는 삭제 마크를 붙일 수 있었던 행이 포함될 수 있습니다. |
TRX_ROWS_MODIFIED | 이 트랜잭션에서 변경 및 삽입 된 행의 수. |
TRX_CONCURRENCY_TICKETS | innodb_concurrency_tickets 옵션에 의한 지정에 따라 스왑되기 전에 현재의 트랜잭션으로 실시 할 작업량을 나타내는 값. |
TRX_ISOLATION_LEVEL | 현재 트랜잭션 격리 수준. |
TRX_UNIQUE_CHECKS | 현재 트랜잭션에서 고유 체크가 켜져 있는지, 꺼져 있는지. (예를 들어 대량 데이터로드 중에 꺼져있는 경우가 있습니다.) |
TRX_FOREIGN_KEY_CHECKS | 현재 트랜잭션에서 외래 키 체크가 켜져 있는지, 꺼져 있는지. (예를 들어 대량 데이터로드 중에 꺼져있는 경우가 있습니다.) |
TRX_LAST_FOREIGN_KEY_ERROR | 마지막 FK 오류에 대한 자세한 오류 메시지 또는 NULL . |
TRX_ADAPTIVE_HASH_LATCHED | 적응 해시 인덱스가 현재 트랜잭션에 의해 잠겨 있는지. (한 번에 하나의 트랜잭션 만 적응 해시 인덱스를 변경할 수 있습니다.) |
TRX_ADAPTIVE_HASH_TIMEOUT | 적응 해시 인덱스의 검색 래치를 즉시 파기하거나 MySQL에서의 호출에 걸쳐 유지 하는가? AHI 경합이없는 경우이 값은 제로 상태에서 문이 종료 될 때까지 래치를 보유합니다. 충돌 동안 제로까지 감소 문은 행 조회 직후 래치를 해제합니다. |
TRX_IS_READ_ONLY | 1의 값은 트랜잭션이 읽기 전용임을 나타냅니다 (5.6.4 이후) |
TRX_AUTOCOMMIT_NON_LOCKING | 1의 값은 트랜잭션이 |
예 :
mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX \G *************************** 1. row *************************** trx_id: 3298 trx_state: RUNNING trx_started: 2014-11-19 13:54:39 trx_requested_lock_id: NULL trx_wait_started: NULL trx_weight: 316436 trx_mysql_thread_id: 2 trx_query: DELETE FROM employees.salaries WHERE salary > 65000 trx_operation_state: updating or deleting trx_tables_in_use: 1 trx_tables_locked: 1 trx_lock_structs: 1621 trx_lock_memory_bytes: 243240 trx_rows_locked: 759343 trx_rows_modified: 314815 trx_concurrency_tickets: 0 trx_isolation_level: REPEATABLE READ trx_unique_checks: 1 trx_foreign_key_checks: 1 trx_last_foreign_key_error: NULL trx_adaptive_hash_latched: 0 trx_adaptive_hash_timeout: 10000 trx_is_read_only: 0 trx_autocommit_non_locking: 0
참고 :
이 테이블을 사용하면 부하가 큰 동시로드 시간 동안 발생하는 성능 문제의 진단에 도움이됩니다. 그 내용은 섹션 14.14.2.3 "InnoDB 트랜잭션과 잠금 테이블의 데이터 지속성과 일관성" 에 설명 된대로 업데이트됩니다.
DESCRIBE
또는SHOW COLUMNS
를 사용하여 데이터 유형 및 기본값을 포함하여이 테이블의 컬럼에 대한 추가 정보를 표시합니다.이 테이블을 쿼리하려면
PROCESS
권한이 필요합니다.사용법은 섹션 14.14.2.1 "InnoDB 트랜잭션과 잠금 테이블을 사용하는 방법" 을 참조하십시오.