首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >[MYSQL案例][011] mysql主从延迟太大,SQL线程状态:applying batch of row changes (delete)

[MYSQL案例][011] mysql主从延迟太大,SQL线程状态:applying batch of row changes (delete)

原创
作者头像
大大刺猬
发布2023-08-01 16:56:32
发布2023-08-01 16:56:32
1.8K0
举报
文章被收录于专栏:大大刺猬大大刺猬

环境

mysql 8.0.x 主从

gtid: off

问题和分析

mysql从库延迟太大, SQL线程和IO线程都是Running的, 但延迟有5天左右. SQL线程状态为:applying batch of row changes (delete)

解析相关relay log得到正在执行的事务信息

代码语言:javascript
复制
mysqlbinlog -vvv --base64-output=decode-row relay.xxxxx --start-position | more

查找该表信息, 发现该表无主键, 无索引, 有20+GB, 接近2亿行....

解决办法

跳过该事务后, 观察延迟正在下降...

代码语言:javascript
复制
-- 非gtid环境
show slave status\G
stop slave;
set global sql_slave_skip_counter=1;
start slave;
show slave status\G
set global sql_slave_skip_counter=0;

-- GTID环境
show slave status\G
stop slave;
set gtid_next="uuid:xxxx";
begin;commit;
set gtid_next=automatic
start slave;
show slave status\G

总结

建议每张表都要有主键, 没得合适的字段作为主键的适合就新增个 自增字段 作为主键.

表尽量别太大.

当然如果是只写(insert)表, 那也是可以不要主键的.

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境
  • 问题和分析
  • 解决办法
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档