MySQL一个延迟案例
突然接到报警显示MySQL主从之间延迟过大,随后尽快到集群上面看看,进行排查。
首先我们查看延迟是由什么造成的,排查一遍过后发现不是网卡和从库机器的负载,那就要从其他地方来排除了
查看binlog日志发现binlog日志文件多并且还大:
由于binlog刷新过快,因此很快就写满一个文件,可以确定出来是由于写入量过大导致的问题。
大概有两种情况:
1、可能此时业务突然增高
2、ROW格式本身就能导致日志文件的增大。
排除第一种可能,所以我们就开始分析binlog日志来进行查看问题。
后来发现delete from table where id < 1000000 limit 100导致的,因为我的表里面含有TEXT大字段,每次delete都会把TEXT大字段带入binlog,进而导致binlog激增。
所以我们后来去掉上面的那种删除用法,采用结合order by语句保证limit的有效性。
我们看一下官方的说法
因此我们就能找出问题了,我这里是参考某位博主的方法来解决的,点击这里