MySQL系统表information_schema.INNODB_TRX详解及查看当前运行事务

这篇具有很好参考价值的文章主要介绍了MySQL系统表information_schema.INNODB_TRX详解及查看当前运行事务。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 目的

在日常管理数据库的过程中,有时需要查询MySQL数据库是否正在有正在执行的事务,便于排查业务问题。MySQL的系统库表有数据维护对应的信息,就在information_schema库中的INNODB_TRX表,包含事务中是否存在锁,事务开启时间,事务执行的语句等等。

2. 说明

2.1 查询正在执行的事务

SELECT * FROM information_schema.innodb_trx;

2.2 详细字段说明

字段 可取值 说明
TRX_ID 事务ID:具有唯一性,这些ID不是为只读和非锁定的事务创建的。
TRX_WEIGHT 事务权重:衡量更改的行数和锁的行数,在死锁的时候,引擎会优先回滚低权重的事务。更改了非事务表的事务被认为比其他事务重,无论更改和锁定的行数是多少。
TRX_STATE
  • RUNNING
  • LOCK WAIT
  • ROLLING BACK
  • COMMITTING
    事务执行状态
    TRX_STARTED 事务开始时间,格式如:2022-11-23 10:18:38
    TRX_REQUESTED_LOCK_ID 锁等待ID,可以join上对应INNODB_LOCKS 表的id
    TRX_WAIT_STARTED 锁等待的开始时间
    TRX_MYSQL_THREAD_ID MySQL 的线程ID,可以join上对应的 PROCESSLIST表数据
    TRX_QUERY 事务过程执行的SQL语句
    TRX_OPERATION_STATE 事务当前的状态
    TRX_TABLES_IN_USE 事务过程中使用到的表数量
    TRX_TABLES_LOCKED 事务过程中被锁的表数量
    TRX_LOCK_STRUCTS 事务保留的所数量
    TRX_LOCK_MEMORY_BYTES 锁用到的内存大小
    TRX_ROWS_LOCKED 事务锁定的近似行数,该值可能包括物理上存在但对事务不可见的删除标记行。
    TRX_ROWS_MODIFIED 事务过程中更改或插入的行数
    TRX_CONCURRENCY_TICKETS 事务并发票数,由系统变量innodb_concurrency_tickets设置
    TRX_ISOLATION_LEVEL
    • READ-UNCOMMITTED
    • READ-COMMITTED
    • REPEATABLE-READ
    • SERIALIZABLE
    事务隔离级别
    TRX_UNIQUE_CHECKS 1或0 是否打开唯一性检查的标识,加载大量数据时关闭
    TRX_FOREIGN_KEY_CHECKS 1或0 是否打开外键检查的标识,加载大量数据时关闭
    TRX_LAST_FOREIGN_KEY_ERROR 最后一次的外键错误信息
    TRX_ADAPTIVE_HASH_LATCHED 自适应哈希索引是否被当前事务锁定, innodb_adaptive_hash_index_parts设置
    TRX_ADAPTIVE_HASH_TIMEOUT 是立即放弃自适应哈希索引的搜索锁占有,还是在来自MySQL的调用中保留它。
    TRX_IS_READ_ONLY 1表示只读
    TRX_AUTOCOMMIT_NON_LOCKING 1表示:没使用FOR UPDATELOCK IN SHARED MODE的SELECT语句

    3. 案例

    3.1 表结构

    MySQL [myhr]> desc city;         
    +--------------+--------------+------+-----+---------+-------+
    | Field        | Type         | Null | Key | Default | Extra |
    +--------------+--------------+------+-----+---------+-------+
    | city_code    | varchar(255) | NO   | PRI | NULL    |       |
    | city_name    | varchar(255) | YES  |     | NULL    |       |
    | parent_code  | varchar(255) | YES  | MUL | NULL    |       |
    | key_cities   | varchar(255) | YES  |     | NULL    |       |
    | abbreviation | varchar(255) | YES  |     | NULL    |       |
    | city_level   | varchar(255) | YES  |     | NULL    |       |
    +--------------+--------------+------+-----+---------+-------+
    

    数据:

    
    MySQL [myhr]> select * from city limit 10;
    +-----------+--------------+-------------+------------+--------------+------------+
    | city_code | city_name    | parent_code | key_cities | abbreviation | city_level |
    +-----------+--------------+-------------+------------+--------------+------------+
    | 110000    | 北京市       | 0           | NULL       | NULL         | NULL       |
    | 110100    | 北京市       | 110000      | NULL       | NULL         | NULL       |
    | 110101    | 东城区       | 110100      | NULL       | NULL         | NULL       |
    | 110102    | 西城区       | 110100      | NULL       | NULL         | NULL       |
    | 110105    | 朝阳区       | 110100      | NULL       | NULL         | NULL       |
    | 110106    | 丰台区       | 110100      | NULL       | NULL         | NULL       |
    | 110107    | 石景山区     | 110100      | NULL       | NULL         | NULL       |
    | 110108    | 海淀区       | 110100      | NULL       | NULL         | NULL       |
    | 110109    | 门头沟区     | 110100      | NULL       | NULL         | NULL       |
    | 110111    | 房山区       | 110100      | NULL       | NULL         | NULL       |
    +-----------+--------------+-------------+------------+--------------+------------+
    

    3.2 查看事务

    MySQL [(none)]> SELECT * FROM information_schema.innodb_trx\G;
    *************************** 1. row ***************************
                        trx_id: 22018017
                     trx_state: LOCK WAIT
                   trx_started: 2022-11-23 12:43:48
         trx_requested_lock_id: 22018017:1028:5:2
              trx_wait_started: 2022-11-23 12:43:48
                    trx_weight: 2
           trx_mysql_thread_id: 1635
                     trx_query: update city set city_level=12  where city_code=110100
           trx_operation_state: starting index read
             trx_tables_in_use: 1
             trx_tables_locked: 1
              trx_lock_structs: 2
         trx_lock_memory_bytes: 1136
               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: 0
              trx_is_read_only: 0
    trx_autocommit_non_locking: 0
    *************************** 2. row ***************************
                        trx_id: 22017539
                     trx_state: RUNNING
                   trx_started: 2022-11-23 12:42:23
         trx_requested_lock_id: NULL
              trx_wait_started: NULL
                    trx_weight: 14
           trx_mysql_thread_id: 1633
                     trx_query: NULL
           trx_operation_state: NULL
             trx_tables_in_use: 0
             trx_tables_locked: 1
              trx_lock_structs: 13
         trx_lock_memory_bytes: 1136
               trx_rows_locked: 3686
             trx_rows_modified: 1
       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: 0
              trx_is_read_only: 0
    trx_autocommit_non_locking: 0
    2 rows in set (0.00 sec)
    

    参考文档:
    MySQL官方文档文章来源地址https://www.toymoban.com/news/detail-576668.html

    到了这里,关于MySQL系统表information_schema.INNODB_TRX详解及查看当前运行事务的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

    领支付宝红包 赞助服务器费用

    相关文章

    • MySQL笔记-information_schema库中COLUMNS表的一些笔记

      mysql建表中可以添加comment,也就是注释,这些注释会写到information_schema库的COLUMNS表中,可以使用如下SQL语句进行查询: 请将your_database_name替换为你的数据库名称,your_table_name替换为你的表名称,以及your_column_name替换为你要查询注释的列名称。 下面来解释下information_schema和

      2024年01月23日
      浏览(41)
    • Web安全—information_schema数据库详解&基础补充

      前言 :在SQL注入中,information_schema数据库中包含的信息特别重要,通过这个表我们可以去获取到存在SQL注入网站的表,列,等信息,其危害不言而喻。 基础 :information_schema是一个存放了当前数据库管理系统中所有数据库信息的一个数据库,数据库只能进行读取,不支持修改

      2023年04月08日
      浏览(41)
    • sql 1044 - Access denied for user ‘root‘@‘localhost‘ to database ‘information_schema‘

      这是sql数据库执行问题。 错误原因:未打开数据库直接导入sql文件。 解决步骤: 1.正确打开数据库。 数据库如下第一个为绿色 2.右击该数据库,选择新建数据库,输入数据库名,对应的字符集和规则,一般为utf8,规则为utf8_general_ci。 utf8和utfmb4区别: utfmb4 兼容 utf8 且可以

      2024年02月06日
      浏览(43)
    • 解决thinkphp6读取sqlserver报Microsoft[SQL Server]对象名 ‘information_schema.tables‘ 无效错误

      先感谢思路 https://weiku.co/article/37/ 需要修改thinkphp里面sqlserver数据库驱动,不要去改composer里面的东西。所以只能自己重写驱动,并且在database.php配置文件中,显示指定builder和type参数来完成非侵入式的修改。 2个核心文件代码 FunSqlsrv.php FunSqlsrv.php 参考 https://weiku.co/article/37/

      2024年02月11日
      浏览(46)
    • MySQL Performance Schema

      1.  Performance Schema Lock Tables MySQL安装以后,我们会看到有这么两个数据库:information_schema 和 performance_schema ,它们对于排查问题是非常有用的。 Performance Schema 是一种存储引擎,默认情况下,它是启用的。 performance_schema数据库的名称是小写的,其中的表的名称也是小写的。查

      2024年02月05日
      浏览(42)
    • MySQL必知必会:MySQL中的Schema与DataBase

      涉及到数据库的模式有很多疑惑,问题经常出现在模式和数据库之间是否有区别,如果有,区别在哪里。 取决于数据库供应商 对schema(模式)产生疑惑的一部分原因是数据库系统倾向于以自己的方式处理模式 (1)MySQL的文档中指出,在物理上,模式与数据库是同义的,所以

      2023年04月27日
      浏览(43)
    • 【MySQL】- 06 Schema与数据类型优化

      当一个资源变得效率低下的时候,应该了解一下为什么会这样。有如下可能原因: 1.资源被过度使用,余量已经不足以正常工作。 2.资源没有被正确配置 3.资源已经损坏或者失灵 因为慢查询,太多查询的时间过长而导致堆积在逻辑上。 慢查询到底是原因还是结果?在深入调

      2024年02月09日
      浏览(44)
    • pg mysql oracle 中的schema

      pg中的schema 表示当前db中数据库对象的命名空间(namespace),数据库对象包括但不限于表、函数、视图、索引等。 对于熟悉mysql的人来说,在第一次看到pg中的schema的概念时,可能会疑惑,schema不是表示database的吗? 注: mysql中schema和 database是一个概念。create database 和create sche

      2024年02月08日
      浏览(41)
    • MySQL实践——sys schema介绍及使用

      sys schema介绍 说到诊断MySQL的性能问题,都知道从performance_schema去获取想要的数据,但是其复杂程度让使用人员使用起来很不方便。在MySQL5.7中,performance_schema已经有80多张表,每张表都是各种统计信息的罗列。另外这些表和information_schema中的部分表也有关联,导致使用人员使

      2024年02月14日
      浏览(56)
    • MySQL学习笔记之监控分析视图-sys.schema

      类型 开头 描述 主机相关 host_summary 主要汇总了IO延迟信息 InnoDB相关 innodb 汇总了InnoDB的缓存信息和事务等待InnoDB锁的信息 IO相关 io 汇总了等待IO、IO使用量情况 内存使用情况 memory 从主机、线程、事件等角度展示内存的使用情况 连接语会话信息 processlist和session相关视图 总结

      2024年02月13日
      浏览(34)

    觉得文章有用就打赏一下文章作者

    支付宝扫一扫打赏

    博客赞助

    微信扫一扫打赏

    请作者喝杯咖啡吧~博客赞助

    支付宝扫一扫领取红包,优惠每天领

    二维码1

    领取红包

    二维码2

    领红包