本文是关于如何在show engine innodb status中解释锁部分的内容。边肖觉得挺实用的,所以分享给大家学习。希望你看完这篇文章能有所收获。让我们和边肖一起看看。
LOCKWAIT2lockstruct,heapsize1136,1rowlock
MySQLthreadid4,OSthreadhandle140665176164096,queryid575localhostrootupdate
insertintotestprivalues(13,10)
-trxhasbeenwaiting 9 secfor hislocktobgranted :
recordlockspace id 723 ageno3 bits s80 indexprimaryftable ` test ` ` . test pri ` trxid 6953526 lock _ modexlocksgappbeforreciencertinationwaiting
Recordlock,heapno 5 physicalrealrecords :n _ field 4;紧凑格式;信息位0
0:len4hex8000000fasc;
1:len6hex0000006a1a29ascj);
2:len7hexba000040370110ASC @ 7;
3:len4hex80000014asc;
如上所述:
Lockstruct内存结构一个东西可以包含多个锁结构,包括与lock_rec_t和lock_table_t结构对应的表锁和行锁结构。锁等待是一种锁定状态。
为此,我修改了源代码中关于锁打印的部分如下:我们可以看到每个锁结构的类内容:
-交易173210,激活8秒
2个锁结构,堆大小1160,1个行锁
MySQL线程id 2,OS线程句柄140737154311936,查询id 174 localhost根清理
-锁循环(1):(由高鹏添加)在修改版本中,我强制检查所有REC_LOCK/TAB_LOCK链!对于这个Trx
TABLE LOCK TABLE ` test `` test mmm ` Trx id 173210锁定模式IX
-锁循环(2):(由高鹏添加)在修改版本中,我强制检查所有REC_LOCK/TAB_LOCK链!对于这个Trx
RECORD LOCKS空间id 253第3页n位80索引表“test”的PRIMARY,“test mmm”Trx id 173210 LOCK _ mode X锁定rec,但不锁定gap
记录锁,堆号9物理记录:n _ field 4;紧凑的格式;信息位0
0:镜头4;hex 80000023ASC #;
1:镜头6;hex 0000000298eeasc;
2:镜头7;十六进制d90000023d0110ASC=;
3:镜头7;hex 67616 f 70656 e 67;asc高鹏;
堆化这些内存结构占用的堆内存大小。
Rowlock (s)行锁结构锁定一行数据,lock_rec_t包含pageno和一个64行的位图,每个位对应一个。
heapno在页面中的位置。
recordlockspace id 723 ageno 3:它是表空间id和页码。
Nbits80:与此页面相关的锁定位图的大小。我的表包含9条数据,包括2个开始和结束虚拟列以及64个11位和75位,但它必须被8平均分成一个字节,即80位。
Heapno5:页面中这一行的Heapno存储在fixed_extrasize中,heapno是物理存储中填充的序列号,页面的空闲空间挂载在pagefree链表(header方法)中,可以重用,但是重用这个heapno保持不变。
如果总是插入,heapno会不断增加,不是按KEY大小排序的逻辑链表顺序,而是物理填充顺序。
0:len4hex8000000fasc;聚合索引实际密钥0XF 15 8位最高位为符号位1为正。
1:len6hex0000006a1a29ascj);Transactionid虚拟线路
2:len7hexba000040370110ASC @ 7;滚动指针虚拟线
3:len4hex80000014asc;行中的其他数据只有一个0x14 20。
以上是如何解释show engine innodb状态中锁定部分的内容。边肖认为,一些知识点可能会在我们的日常工作中看到或使用。我希望你能通过这篇文章学到更多的知识。更多详情请关注行业资讯频道。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/95844.html