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


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

28.4.28 INFORMATION_SCHEMA INNODB_TRX 表格

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

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

INNODB_TRX 表格包含這些欄位

  • TRX_ID

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

  • TRX_WEIGHT

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

  • TRX_STATE

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

  • TRX_STARTED

    交易開始時間。

  • TRX_REQUESTED_LOCK_ID

    交易目前正在等待的鎖定 ID,如果 TRX_STATELOCK WAIT;否則為 NULL。若要取得鎖定的詳細資訊,請將此欄位與 Performance Schema 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

    由競爭感知交易排程 (CATS) 演算法分配給等待鎖定的交易的交易排程權重。此值是相對於其他交易的值。較高的值具有較大的權重。僅為 TRX_STATE 欄報告處於 LOCK WAIT 狀態的交易計算值。對於未等待鎖定的交易,報告為 NULL 值。TRX_SCHEDULE_WEIGHT 值與 TRX_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

注意事項