当前位置:网站首页>MySQL information schema learning (II) -- InnoDB table
MySQL information schema learning (II) -- InnoDB table
2022-07-06 19:30:00 【Night hunter - Demon King】
Learn about and innodb Related table .
1.INNODB_TRX
Provide information about each transaction currently executed internally Information about InnoDB, Including whether the transaction is waiting for locking 、 When the transaction starts and what the transaction is executing SQL sentence .
The main Column :
TRX_IDThe only business ID NumberTRX_WEIGHTThe weight of the transaction , reflect ( But not necessarily the exact count ) Number of rows changed and transaction locked . In order to solve the deadlock ,InnoDBSelect the transaction with the smallest weight as “ The victim ” Roll back . Transactions that have changed non transactional tables are considered heavier than other transactions , No matter how many rows are changed and locked .TRX_STATETransaction execution status . The allowed values areRUNNING、LOCK WAIT、ROLLING BACKandCOMMITTING. You can judge whether a certain current transaction is waiting for a lockTRX_STARTEDTransaction start time .TRX_REQUESTED_LOCK_IDThe lock that the transaction is currently waiting for ID, IfTRX_STATEyesLOCK WAIT; otherwiseNULL. To get more information about locks , Please compare this column with theLOCK_IDColumn Connect INNODB_LOCKS.
You can get the lock that the current transaction is waiting for , Easy to analyze deadlock problems .
TRX_WAIT_STARTEDThe time when the transaction starts waiting for the lock , IfTRX_STATEyesLOCK WAIT; otherwiseNULL.TRX_MYSQL_THREAD_IDMySQL Threads ID. To get more information about threads , Please compare this column with theIDColumn ConnectINFORMATION_SCHEMAPROCESSLISTTRX_QUERYThe transaction is executing SQL sentence .TRX_OPERATION_STATEThe current operation of the transaction , If any ; otherwiseNULL.TRX_TABLES_IN_USEInnoDBProcess the current SQL Use The number of watches .TRX_TABLES_LOCKEDInnoDBAt present SQL Statement has a row lock Number of tables for .( Because these are row locks , Not a watch lock , So although some rows are locked , However, tables can usually still be read and written by multiple transactions .)TRX_LOCK_STRUCTSNumber of locks reserved by transaction .TRX_LOCK_MEMORY_BYTESThe total size of the lock structure of this transaction in memory .TRX_ROWS_LOCKEDThe approximate number or rows locked by this transaction . The value may include delete tag lines that actually exist but are not visible to the transaction .TRX_ROWS_MODIFIEDNumber of rows modified and inserted in this transaction .TRX_CONCURRENCY_TICKETSA value , Indicates how much work the current transaction can do before it is swapped out , from innodb_concurrency_tickets The system variable specifies .TRX_ISOLATION_LEVELIsolation level of the current transaction .TRX_UNIQUE_CHECKSWhether to turn unique checking on or off for the current transaction . for example , They may be turned off during bulk data loading .TRX_FOREIGN_KEY_CHECKSWhether to turn foreign key checking on or off for the current transaction . for example , They may be turned off during bulk data loading .TRX_LAST_FOREIGN_KEY_ERRORDetailed error information of the last foreign key error , If any ; otherwiseNULL.TRX_ADAPTIVE_HASH_LATCHEDWhether the adaptive hash index is locked by the current transaction . When the adaptive hash index search system is partitioned , A single transaction does not lock the entire adaptive hash index . The adaptive hash index partition is created by control innodb_adaptive_hash_index_parts, The default setting is 8.TRX_ADAPTIVE_HASH_TIMEOUTWhether to discard the search latch of adaptive hash index immediately , Or from MySQL Keep it in the call of . When there is no adaptive hash index contention , This value remains at zero , And statements retain latches until they are complete . During the dispute , It counts down to zero , And the statement releases the latch immediately after each line lookup . When the adaptive hash index search system is partitioned ( from control innodb_adaptive_hash_index_parts) when , This value remains at 0.TRX_IS_READ_ONLYvalue 1 Indicates that the transaction is read-only .TRX_AUTOCOMMIT_NON_LOCKINGvalue 1 Indicates that the transaction is SELECT Don't useFOR UPDATEorLOCK IN SHARED MODEStatement of clause , And execute when enabled , autocommit Therefore, the transaction only contains this statement . When this column andTRX_IS_READ_ONLYAre all 1 when ,InnoDBOptimize transactions to reduce the overhead associated with transactions that change table data .
2.INNODB_LOCKS
Provide relevant InnoDB Information about each lock that the transaction has requested but has not yet acquired , And the information held by the transaction blocking each lock of another transaction . Main column :
LOCK_IDA unique lock ID NumberLOCK_TRX_IDOf the transaction that holds the lock ID. To get detailed information about transactions , Please compare this column with theTRX_IDColumn Connect INNODB_TRX.LOCK_MODEHow to request a lock . The allowed lock mode descriptors areS,X,IS,IX,GAP,AUTO_INC, andUNKNOWN. Lock mode descriptors can be used in combination to identify specific lock modes .LOCK_TYPEThe type of lock . Allowed valueRECORDApplicable to row level lock 、TABLETable lock .LOCK_TABLEThe name of the table that has or contains the locked record .LOCK_INDEXName of index , IfLOCK_TYPEyesRECORD; otherwiseNULL.LOCK_SPACELock the table space of the record ID, IfLOCK_TYPEyesRECORD; otherwiseNULL.LOCK_PAGELock the page number of the record , IfLOCK_TYPEyesRECORD; otherwiseNULL.LOCK_RECThe heap number of the locked record in the page , IfLOCK_TYPEyesRECORD; otherwiseNULL.
3.INNODB_LOCK_WAIT
Contains each block InnoDB One or more rows of a transaction , Indicates the lock it has requested and any locks that block the request .
Main column :
REQUESTING_TRX_IDrequest ( Blocking ) The transaction ID.REQUESTED_LOCK_IDThe lock that the transaction is waiting for ID. To get more information about locks , Please compare this column with theLOCK_IDColumn Connect INNODB_LOCKS.BLOCKING_TRX_IDBlocking a transaction ID.BLOCKING_LOCK_IDA transaction holds a lock ID, This transaction prevents another transaction from continuing . To get more information about locks , Please compare this column with theLOCK_IDColumn connection INNODB_LOCKS.
trx Table describes transactions ,lock Table describes the lock ,lock_wait Describes the relationship between blocking transaction locks .
for instance , Create a new table members

Start transaction 1
start TRANSACTION;
SELECT * FROM members WHERE id = 1 for UPDATE;Start transaction 2
start TRANSACTION;
SELECT * FROM members WHERE id = 1 for UPDATE;Observe the present 3 The state of the table :
Business table There are currently two transactions 1 and 2 Business 1 Running Business 2 Waiting for lock

Lock table There is currently a lock , Business 1,2 Are requesting row locks

Lock wait list Business 1 Waiting for transaction 2 Lock of

Later, learn to use these tables to diagnose and analyze problems .
边栏推荐
- LeetCode-1279. 红绿灯路口
- Leetcode topic [array] - 119 Yang Hui triangle II
- 三面蚂蚁金服成功拿到offer,Android开发社招面试经验
- In 50W, what have I done right?
- Take a look at how cabloyjs workflow engine implements activiti boundary events
- 如何自定义动漫头像?这6个免费精品在线卡通头像生成器,看一眼就怦然心动!
- ModuleNotFoundError: No module named ‘PIL‘解决方法
- 受益匪浅,安卓面试问题
- How can my Haskell program or library find its version number- How can my Haskell program or library find its version number?
- 学习探索-无缝轮播图
猜你喜欢

LeetCode-1279. 红绿灯路口

Dark horse -- redis

ROS custom message publishing subscription example

【计算情与思】扫地僧、打字员、信息恐慌与奥本海默

Help improve the professional quality of safety talents | the first stage of personal ability certification and assessment has been successfully completed!

包装行业商业供应链管理平台解决方案:布局智慧供应体系,数字化整合包装行业供应链

第五期个人能力认证考核通过名单公布

思维导图+源代码+笔记+项目,字节跳动+京东+360+网易面试题整理

Druid 数据库连接池 详解

Zero foundation entry polardb-x: build a highly available system and link the big data screen
随机推荐
R language ggplot2 visual time series histogram: visual time series histogram through two-color gradient color matching color theme
在解决了 2961 个用户反馈后,我做出了这样的改变...
Sanmian ant financial successfully got the offer, and has experience in Android development agency recruitment and interview
冒烟测试怎么做
R language ggplot2 visualization: use ggviolin function of ggpubr package to visualize violin diagram
黑馬--Redis篇
ROS自定义消息发布订阅示例
关于图像的读取及处理等
CF960G - Bandit Blues(第一类斯特林数+OGF)
终于可以一行代码也不用改了!ShardingSphere 原生驱动问世
反射及在运用过程中出现的IllegalAccessException异常
第五期个人能力认证考核通过名单公布
Interview assault 63: how to remove duplication in MySQL?
Druid database connection pool details
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
How can my Haskell program or library find its version number- How can my Haskell program or library find its version number?
Dark horse -- redis
Is not a drawable (color or path): the vector graph downloaded externally cannot be called when it is put into mipmap, and the calling error program crashes
Pychrm Community Edition calls matplotlib pyplot. Solution of imshow() function image not popping up
受益匪浅,安卓面试问题