文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  INFORMATION_SCHEMA INNODB_TRX 表格

28.4.28 INFORMATION_SCHEMA INNODB_TRX 表格

INNODB_TRX 表格提供關於目前正在 InnoDB 內執行的每個交易的資訊,包括交易是否正在等待鎖定、交易何時開始,以及交易正在執行的 SQL 陳述式(如果有的話)。

如需使用資訊,請參閱第 17.15.2.1 節,「使用 InnoDB 交易和鎖定資訊」

INNODB_TRX 表格具有以下欄位:

  • TRX_ID

    InnoDB 內部的唯一交易 ID 號碼。這些 ID 不會為唯讀且不鎖定的交易建立。如需詳細資訊,請參閱第 10.5.3 節,「最佳化 InnoDB 唯讀交易」

  • TRX_WEIGHT

    交易的權重,反映(但不一定確切計數)交易變更的列數和交易鎖定的列數。為了解決死結,InnoDB 會選擇權重最小的交易作為要回滾的「「受害者」」。無論變更和鎖定的列數為何,已變更非交易表格的交易都被認為比其他交易更重。

  • TRX_STATE

    交易執行狀態。允許的值為 RUNNINGLOCK WAITROLLING BACKCOMMITTING

  • TRX_STARTED

    交易開始時間。

  • TRX_REQUESTED_LOCK_ID

    如果 TRX_STATELOCK WAIT,則為交易目前正在等待的鎖定 ID;否則為 NULL。若要取得關於鎖定的詳細資訊,請將此欄位與效能架構data_locks表格的 ENGINE_LOCK_ID 欄位聯結。

  • TRX_WAIT_STARTED

    如果 TRX_STATELOCK WAIT,則為交易開始等待鎖定的時間;否則為 NULL

  • TRX_MYSQL_THREAD_ID

    MySQL 執行緒 ID。若要取得關於執行緒的詳細資訊,請將此欄位與 INFORMATION_SCHEMA PROCESSLIST 表格的 ID 欄位聯結,但請參閱第 17.15.2.3 節,「InnoDB 交易和鎖定資訊的持久性和一致性」

  • 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

    最後一次外鍵錯誤的詳細錯誤訊息(如果有的話);否則為 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 表示交易是未使用 FOR UPDATELOCK IN SHARED MODE 子句的 SELECT 語句,且在啟用 autocommit 的情況下執行,因此交易僅包含此單一語句。當此欄位和 TRX_IS_READ_ONLY 都為 1 時,InnoDB 會最佳化交易,以減少與變更表格資料的交易相關的開銷。

  • TRX_SCHEDULE_WEIGHT

    由「感知爭用交易排程」(Contention-Aware Transaction Scheduling,CATS) 演算法指派給等待鎖定的交易的交易排程權重。該值相對於其他交易的值。較高的值具有較大的權重。僅針對由 TRX_STATE 欄位報告為 LOCK WAIT 狀態的交易計算該值。對於未等待鎖定的交易,則報告 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

注意事項