Innodb:为什么lock in share mode在show engine看不到行锁信息

  • 时间:
  • 浏览:0

因此不可能 只读事物事物情况为running情况的呢?这里就不打印了,因此这一 太好是一个多多比较关键的信息,这一 之前 并能在innodb_trx 视图中去看完如下:

果真不可能 没有 lock in share mode 事物在show engine innodb 是看并能的,不可能 压根不需要打印,除非先显示开启一个多多读写事物。而对于 for update 这一 上LOCK_X锁的事物会归入读写事物因此可不后能 打印出来。

最后吐槽一下show engine innodb 事物打印帕累托图应该可不后能 改进啊。

我发现既然没有 ,亲戚亲戚你们 show engine innodb status的事物帕累托图的输出中亲戚亲戚你们 发现会打印出如下信息:

根本看并能加锁信息。因此我的日志中却有输出如下:

亲戚亲戚你们 看完了 lock mode S(LOCK_S) locks rec but not gap(LOCK_REC_NOT_GAP)的信息看来没有 大大问题,猜测是实验是一样的,因此还是要源码验证一下。

再来看看

作者微信:gp_22389850

水平有限 有误请指出

版本:Percona MySQL 5.7.22

对于锁的学习我做了这一 输出完正参考如下:

https://github.com/gaopengcarl/percona-server-locks-detail-5.7.22.git其蕴含readme

按理说这一 之前 应该在主键ID=0这一 行上了LOCK_S,因此show engine innodb却看并能加锁信息如下:

亲戚亲戚你们 这能不可不后能 看完并能情况为TRX_STATE_NOT_STARTED才会输出为not start情况。

亲戚亲戚你们 这能不可不后能 看完并能读写事物才会进行锁价值形式的输出。

别问我有没有 亲戚你们 和我一样用lock in share mode做加锁实验,因此却在show engine innodb status中看并能加锁信息,今天刚好有亲戚你们 在问@在树枝上吹风,今天就做了一下简单的debug,不可能 我也挺纳闷的。(我喜欢多问一个多多为这一 也挺累的)

大大问题如下:

首先我开启了我的打印行锁参数,让加锁输出到日志中

这一 函数是调用的逻辑。

因此我基本断定加锁肯定是做了的,因此为这一 没有 输出呢?

我结束怀疑不是提前释放了不可能 是打印的之前 过滤掉了?之后发现都都有。看完到了一个多多TRX_ID为422211785505248,这是只读事物的TRX_ID的形式,会都有不可能 应打印的之前 只会打印读写的事物的锁价值形式信息,不可能 Innodb中读写事物一个多多多独立的链表,不可能 只打印这一 链表上的信息就会冒出这一 大大问题。接着我做了一个多多事物先做了一个多多delete操作因此做lock in share mode一句话可不后能 看完LOCK_S价值形式就可不后能 看完了,如下:

因此跑如下一句话