MySQL:mysqlbinlog|mysql慢一列

2021-08-17  本文已影响0人  重庆八怪

一个小问题,5.7版本,关于这个问题还有一种可能如下
https://www.jianshu.com/p/ee7a501b7f75
但是本例不是,这里是MySQLD进程的SQL线程耗用CPU较多,还是第一次遇到这样的问题。以前一般不会慢在这里。


一、问题由来

mysqlbinlog|mysql发现比较慢出现的perf top和栈如下:


image.png image.png image.png

二、原因

这里实际上是表没有主键使用hash scan 照成的,但是慢在hash key分配内存上,我们很容易模拟出这种问题的栈:


image.png

问题确认后就在表中增加主键即可。

三、其他思考

比如log_slave_updates/过滤等参数对于mysqlbinlog|mysql是否生效呢?

  1. log_slave_updates 是从库特有,主要用于处理SQL线程的属性
  2. replicate_do_ 是 Relay_log_info中的属性,属于channel属性,mysqlbinlog|mysql通道信息为临时建立的""
  3. binlog_do_是实例级别的属性,这个对每个线程都有效

mysqlbinlog|mysql 不会受到1、2的影响,但是受到3的影响。当然任何apply event的方式没有改变,但是本线程是普通的线程,不是SQL线程,不带有SQL线程的属性。

上一篇下一篇

猜你喜欢

热点阅读