当前位置:网站首页>Mysql Information Schema 学习(二)--Innodb表
Mysql Information Schema 学习(二)--Innodb表
2022-07-06 11:32:00 【暗夜猎手-大魔王】
学习一下与innodb有关的表。
1.INNODB_TRX
提供有关当前在内部执行的每个事务 的信息InnoDB
,包括事务是否正在等待锁定、事务何时启动以及事务正在执行的 SQL 语句。
主要列:
TRX_ID
唯一的事务 ID 号TRX_WEIGHT
事务的权重,反映(但不一定是确切的计数)更改的行数和事务锁定的行数。为了解决死锁,InnoDB
选择权重最小的事务作为“受害者”进行回滚。已更改非事务表的事务被认为比其他事务更重,无论更改和锁定的行数如何。TRX_STATE
事务执行状态。允许的值为RUNNING
、LOCK WAIT
、ROLLING BACK
和COMMITTING
。 可以判断一定当前事务是否在等待锁TRX_STARTED
事务开始时间。TRX_REQUESTED_LOCK_ID
事务当前正在等待的锁的ID,如果TRX_STATE
是LOCK WAIT
;否则NULL
。要获取有关锁的详细信息,请将此列与表的LOCK_ID
列 连接INNODB_LOCKS。
可以获取当前事务正在等待的锁,便于分析死锁问题。
TRX_WAIT_STARTED
事务开始等待锁的时间,如果TRX_STATE
是LOCK WAIT
;否则NULL
。TRX_MYSQL_THREAD_ID
MySQL 线程 ID。要获取有关线程的详细信息,请将此列与表的ID
列 连接INFORMATION_SCHEMA
PROCESSLISTTRX_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 UPDATE
orLOCK IN SHARED MODE
子句的语句,并且在启用的情况下执行, autocommit因此事务仅包含这一个语句。当此列 和TRX_IS_READ_ONLY
均为 1 时,InnoDB
优化事务以减少与更改表数据的事务相关的开销。
2.INNODB_LOCKS
提供有关InnoDB
事务已请求但尚未获取的每个锁的信息,以及事务持有的阻塞另一个事务的每个锁的信息。主要列:
LOCK_ID
一个唯一的锁 ID 号LOCK_TRX_ID
持有锁的事务的 ID。要获取有关事务的详细信息,请将此列与表的TRX_ID
列 连接INNODB_TRX。LOCK_MODE
如何请求锁定。允许的锁定模式描述符是S
,X
,IS
,IX
,GAP
,AUTO_INC
, 和UNKNOWN
。锁定模式描述符可以结合使用来识别特定的锁定模式。LOCK_TYPE
锁的类型。允许的值RECORD
适用于行级锁、TABLE
表级锁。LOCK_TABLE
已锁定或包含锁定记录的表的名称。LOCK_INDEX
索引的名称,如果LOCK_TYPE
是RECORD
; 否则NULL
。LOCK_SPACE
锁定记录的表空间 ID,如果LOCK_TYPE
是RECORD
; 否则NULL
。LOCK_PAGE
锁定记录的页码,如果LOCK_TYPE
是RECORD
; 否则NULL
。LOCK_REC
页内被锁定记录的堆号,如果LOCK_TYPE
是RECORD
; 否则NULL
。
3.INNODB_LOCK_WAIT
包含每个阻塞InnoDB
事务的一个或多个行,指示它已请求的锁以及阻塞该请求的任何锁。
主要列:
REQUESTING_TRX_ID
请求(阻塞)事务的 ID。REQUESTED_LOCK_ID
事务正在等待的锁的 ID。要获取有关锁的详细信息,请将此列与表的LOCK_ID
列 连接INNODB_LOCKS。BLOCKING_TRX_ID
阻塞事务的 ID。BLOCKING_LOCK_ID
一个事务持有的锁的 ID,该事务阻止另一个事务继续进行。要获取有关锁的详细信息,请将此列与表的LOCK_ID
列连接INNODB_LOCKS。
trx表描述了事务,lock表描述了锁,lock_wait描述了阻塞事务锁之间的关系。
举个例子,新建一张表members
启动事务1
start TRANSACTION;
SELECT * FROM members WHERE id = 1 for UPDATE;
启动事务2
start TRANSACTION;
SELECT * FROM members WHERE id = 1 for UPDATE;
观察当前3张表的状态:
事务表 当前有两个事务 1和2 事务1正在运行 事务2正在等待锁
锁表 当前有个锁,事务1,2都在请求行锁
锁等待表 事务1正在等待事务2的锁
后面多学习使用这些表来诊断分析问题。
边栏推荐
- 倒计时2天|腾讯云消息队列数据接入平台(Data Import Platform)直播预告
- tensorflow和torch代码验证cuda是否安装成功
- Live broadcast today | the 2022 Hongji ecological partnership conference of "Renji collaboration has come" is ready to go
- php+redis实现超时取消订单功能
- Interface test tool - postman
- Sanmian ant financial successfully got the offer, and has experience in Android development agency recruitment and interview
- Mathematical knowledge -- code implementation of Gaussian elimination (elementary line transformation to solve equations)
- R语言dplyr包进行数据分组聚合统计变换(Aggregating transforms)、计算dataframe数据的分组均值(mean)
- How to type multiple spaces when editing CSDN articles
- 业务与应用同步发展:应用现代化的策略建议
猜你喜欢
JDBC详解
Synchronous development of business and application: strategic suggestions for application modernization
Analysis of frequent chain breaks in applications using Druid connection pools
Live broadcast today | the 2022 Hongji ecological partnership conference of "Renji collaboration has come" is ready to go
第五期个人能力认证考核通过名单公布
通俗的讲解,带你入门协程
Airiot IOT platform enables the container industry to build [welding station information monitoring system]
Documents to be used in IC design process
How word displays modification traces
渲大师携手向日葵,远控赋能云渲染及GPU算力服务
随机推荐
Looting iii[post sequence traversal and backtracking + dynamic planning]
JDBC details
Airiot IOT platform enables the container industry to build [welding station information monitoring system]
Precautions for binding shortcut keys of QPushButton
零基础入门PolarDB-X:搭建高可用系统并联动数据大屏
Problems encountered in using RT thread component fish
C language daily practice - day 22: Zero foundation learning dynamic planning
黑馬--Redis篇
An error occurs when installing MySQL: could not create or access the registry key needed for the
Solution of intelligent management platform for suppliers in hardware and electromechanical industry: optimize supply chain management and drive enterprise performance growth
[depth first search] Ji suanke: Square
R language ggplot2 visualization: use the ggdotplot function of ggpubr package to visualize dot plot, set the palette parameter, and set the colors of data points and box graphs of dot plots at differ
Graffiti intelligence is listed on the dual main board in Hong Kong: market value of 11.2 billion Hong Kong, with an annual revenue of 300 million US dollars
快速幂模板求逆元,逆元的作用以及例题【第20届上海大学程序设计联赛夏季赛】排列计数
三年Android开发,2022疫情期间八家大厂的Android面试经历和真题整理
R语言使用order函数对dataframe数据进行排序、基于单个字段(变量)进行降序排序(DESCENDING)
short i =1; I=i+1 and short i=1; Difference of i+=1
R语言使用dt函数生成t分布密度函数数据、使用plot函数可视化t分布密度函数数据(t Distribution)
Fast power template for inverse element, the role of inverse element and example [the 20th summer competition of Shanghai University Programming League] permutation counting
Test technology stack arrangement -- self cultivation of test development engineers