• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • INNODB_TRX表

    INNODB_TRX表提供有关当前内部正在执行的每个事务的信息InnoDB,包括事务是否正在等待锁,事务何时开始以及事务正在执行的SQL语句(如果有)。

    有关使用情况的信息,请参见“InnoDB INFORMATION_SCHEMA事务和锁定信息”。

    INNODB_TRX表包含以下列:

    • TRX_ID

      内部唯一的交易ID号InnoDB。这些ID不是为只读和非锁定的事务创建的。有关详细信息,请参见“优化InnoDB只读事务”。

    • TRX_WEIGHT

      事务的权重,反映(但不一定是确切的计数)已更改的行数和该事务锁定的行数。要解决僵局,请InnoDB选择事务权重最小的事务作为“受害者”进行回滚。更改了非事务表的事务被认为比其他事务重,而无论更改和锁定的行数如何。该TRX_WEIGHT值不应与该TRX_SCHEDULE_WEIGHT值混淆,该值是由不同算法出于不同目的而计算的。

    • TRX_STATE

      事务执行状态。允许值是RUNNINGLOCK WAITROLLING BACK,和COMMITTING

    • TRX_STARTED

      交易开始时间。

    • TRX_REQUESTED_LOCK_ID

      事务当前正在等待的锁的ID(如果TRX_STATE为)LOCK WAIT;否则NULL。要获取有关锁的详细信息,请将此列与ENGINE_LOCK_ID“性能模式”data_locks表的列连接在一起。

    • TRX_WAIT_STARTED

      事务开始等待锁的时间(如果TRX_STATE是)LOCK WAIT;否则NULL

    • TRX_MYSQL_THREAD_ID

      MySQL线程ID。要获取有关线程的详细信息,请将此列与表的ID列连接在一起INFORMATION_SCHEMAPROCESSLIST,但请参见“ InnoDB事务的持久性和一致性以及锁定信息”。

    • 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

      innodb_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的调用之间保留它。当没有自适应哈希索引争用时,该值保持为零,并且语句保留锁存器,直到它们完成为止。在争用期间,它递减计数为零,并且语句在每次查询行后立即释放锁存器。对自适应哈希索引搜索系统进行分区(由控制innodb_adaptive_hash_index_parts)时,该值保持为0。

    • TRX_IS_READ_ONLY

      值为1表示事务是只读的。

    • TRX_AUTOCOMMIT_NON_LOCKING

      值为1表示事务是SELECT不使用FOR UPDATEor LOCK IN SHARED MODE子句的语句,并且正在autocommit启用状态下执行,因此事务仅包含该一条语句。当此列和TRX_IS_READ_ONLY均为1时,InnoDB优化事务以减少与更改表数据的事务相关的开销。

    • TRX_SCHEDULE_WEIGHT

      由竞争感知事务调度(CATS)算法分配给正在等待记录锁定的事务的事务调度权重。权重值表示一个事务相对于等待记录锁定的其他事务的优先级。如LOCK WAITTRX_STATE列所报告,仅针对状态中的交易计算交易计划权重。一个NULL数值报告为不等待记录锁定交易。该TRX_SCHEDULE_WEIGHT值不应与该TRX_WEIGHT值混淆,该值是由不同算法出于不同目的而计算的。

    mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX\G
    *************************** 1. row***************************
                        trx_id: 1510
                     trx_state: RUNNING
                   trx_started: 2014-11-19 13:24:40
         trx_requested_lock_id: NULL
              trx_wait_started: NULL
                    trx_weight: 586739
           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: 3003
         trx_lock_memory_bytes: 450768
               trx_rows_locked: 1407513
             trx_rows_modified: 583736
       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
           trx_schedule_weight: NULL
    

    注意

    • 使用此表可帮助诊断在并发负载较大时发生的性能问题。其内容已按“ InnoDB事务和锁定信息的持久性和一致性”中所述进行更新。
    • 您必须具有PROCESS查询此表的特权。
    • 使用该INFORMATION_SCHEMACOLUMNS表或该SHOW COLUMNS语句参见有关该表的列的其他信息,包括数据类型和默认值。