• zz 通过INFORMATION_SCHEMA.INNODB_TRX、INNODB_LOCKS、INNODB_LOCK_WAITS 三个表获取事务与锁的信息


    zz from http://imysql.com/2015/03/25/mysql-faq-how-to-fetch-latest-trxid.shtml 

    #先查询 INNODB_TRX 表,看看都有哪些事务

    mysql> SELECT * FROM INFORMATION_SCHEMA.INNODB_TRXG
    *************************** 1. row ***************************
     trx_id: 17778 -- 当前事务ID
     trx_state: LOCK WAIT -- 处于锁等待状态,也就是等待其他会话释放锁资源
     trx_started: 2015-03-04 10:40:26
     trx_requested_lock_id: 17778:82:3:6 -- 欲请求的锁
     trx_wait_started: 2015-03-04 10:40:26
     trx_weight: 2 -- 大意是该锁影响了2行记录
     trx_mysql_thread_id: 657 -- processlist中的线程ID
     trx_query: update trx_fee set fee=rand()*1000 where id= 4
     trx_operation_state: starting index read
     trx_tables_in_use: 1
     trx_tables_locked: 1
     trx_lock_structs: 2
     trx_lock_memory_bytes: 360
     trx_rows_locked: 1
     trx_rows_modified: 0
     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
     *************************** 2. row ***************************
     trx_id: 17773
      trx_state: RUNNING
     trx_started: 2015-03-04 10:40:23
     trx_requested_lock_id: NULL
     trx_wait_started: NULL
     trx_weight: 10
     trx_mysql_thread_id: 656
     trx_query: NULL
     trx_operation_state: NULL
     trx_tables_in_use: 0
     trx_tables_locked: 0
     trx_lock_structs: 2
     trx_lock_memory_bytes: 360
     trx_rows_locked: 9
     trx_rows_modified: 8
     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

    #再看 INNODB_LOCKS 表,看看都有什么锁

    mysql> select * from information_schema.INNODB_LOCKSG
    *************************** 1. row ***************************
    lock_id: 17778:82:3:6 --当前锁ID
    lock_trx_id: 17778 --该锁对应的事务ID
    lock_mode: X -- 锁类型,排它锁X
    lock_type: RECORD --锁范围,记录锁:record lock,其他锁范围:间隙锁:gap lock,或者next-key lock(记录锁+间隙锁)
    lock_table: `test`.`trx_fee`
    lock_index: PRIMARY --加载在哪个索引上的锁
    lock_space: 82
    lock_page: 3
    lock_rec: 6
    lock_data: 4
    *************************** 2. row ***************************
    lock_id: 17773:82:3:6
    lock_trx_id: 17773
    lock_mode: X
    lock_type: RECORD
    lock_table: `test`.`trx_fee`
    lock_index: PRIMARY
    lock_space: 82
    lock_page: 3
    lock_rec: 6
    lock_data: 4

    #最后看 INNODB_LOCK_WAITS 表,看看当前都有哪些锁等待

    mysql> select * from information_schema.INNODB_LOCK_WAITSG
    *************************** 1. row ***************************
    requesting_trx_id: 17778 --请求锁的事务ID(等待方)
    requested_lock_id: 17778:82:3:6 -- 请求锁ID
    blocking_trx_id: 17773 -- 阻塞该锁的事务ID(当前持有方,待释放)
    blocking_lock_id: 17773:82:3:6 -- 持有的锁ID

    关于INFORMATION_SCHEMA中和InnoDB有关的表用途描述,可以查看手册:21.29 INFORMATION_SCHEMA Tables for InnoDB

  • 相关阅读:
    maven命令运行项目
    关于IDEA2020.1版本会出现maven依赖问题
    记录三十天 2020.5.7 day30
    GO
    有关IDEA的Settings常用设置(后续补充....)
    Windows下载安装 破解 idea2019.1.4
    关于tomcat9的startup.bat闪退问题&乱码
    python基础学习(十四)
    python基础学习(十三)
    IDEA常备插件推荐
  • 原文地址:https://www.cnblogs.com/jiweixiao/p/4685472.html
Copyright © 2020-2023  润新知