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

  • 时间:
  • 浏览:0
  • 来源:大发快3官方直播—彩神UU快三代理

并否有函数是调用的逻辑。

我发现既然这麼,一点人show engine innodb status的事物次责的输出中一点人发现会打印出如下信息:

作者微信:gp_223898500

水平有限 有误请指出

版本: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却看都并能了加锁信息如下:

一点人看到了 lock mode S(LOCK_S) locks rec but not gap(LOCK_REC_NOT_GAP)的信息看来这麼问题报告 ,猜测是实验是一样的,后要 还是要源码验证一下。

后要 跑如下得话

一点人这里都并能 看到都并能了读写事物才会进行锁价值形式的输出。

别问我有这麼一点人和我一样用lock in share mode做加锁实验,后要 却在show engine innodb status中看都并能了加锁信息,今天刚好有一点人在问@在树枝上吹风,今天就做了一下简单的debug,因为 我也挺纳闷的。(我喜欢多问一个 为哪几个也挺累的)

问题报告 如下:

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

后要 我基本断定加锁肯定是做了的,后要 为哪几个这麼输出呢?

甜得因为 这麼lock in share mode 事物在show engine innodb 是看都并能了的,因为 压根不不打印,除非先显示开启一个 读写事物。而对于 for update 并否有上LOCK_X锁的事物会归入读写事物后要 都并能 打印出来。

最后吐槽一下show engine innodb 事物打印次责应该都并能 改进啊。

根本看都并能了加锁信息。后要 我的日志中却有输出如下:

再来看看

我开始英文英语 怀疑否有提前释放了因为 是打印的后要 过滤掉了?后要 发现都都在。看到到了一个 TRX_ID为4222117855005248,这是只读事物的TRX_ID的形式,会都在因为 应打印的后要 只会打印读写的事物的锁价值形式信息,因为 Innodb中读写事物四个 独立的链表,因为 只打印并否有链表上的信息就会冒出 并否有问题报告 。接着我做了一个 事物先做了一个 delete操作后要 做lock in share mode得话都并能 看到LOCK_S价值形式就都并能 看到了,如下:

一点人这里都并能 看到都并能了状况为TRX_STATE_NOT_STARTED才会输出为not start状况。

后要 因为 只读事物事物状况为running状况的呢?这里就不打印了,后要 这我觉得是一个 比较关键的信息,并否有后要 都并能了在innodb_trx 视图中去看到如下: