暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mysql 锁的慢日志

四海内皆兄弟 2021-06-02
259

     在以前发表公众号基础上继续完善一下mysql的dml和缓存的关系。(5.7)

可以看到这1000w的数据第二次查询就缓存了结果集。这是以前的图。

第二张图也是以前的。一旦发生数据变化则没有缓存了,重新计算。那么翻过来也可以这样说,如果发生了重新计算,说明了数据一定有DML,也就是并发、或者非并发写。总之一定是写了。

今天说点不一样的。上次我这都是在一个会话下进行的。一次偶然想法,那么在其他会话中是不是一样缓存了呢?要知道在Oracle中 A用户执行select * from t(t是A的)和在B用户下执行select * from a.t这个是要硬解析,而且游标也不一样了。

来个实验。先是自己会话(ID号是65) 步骤是:

1读硬盘

2缓存到了

3更新数据

4无法缓存读硬盘

5缓存到了

接下来多会话模式

 自己会话(ID号是67) 步骤是

1读硬盘

2缓存到了

3切换会话,而且是新的会话(因为有可能会说老的会话缓存了,看能不能是吧新的会话)

4不同会话缓存到了

再说一下锁。一定是多会话。

第二个会话被第一个阻塞了22秒。

结论是会话67的执行时间不记录,只有会话69记录了被阻塞时间。

如果超时呢?

还是一样。

文章转载自四海内皆兄弟,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论