暂无图片
关于从库的表空间碎片过多
我来答
分享
M
msg
2022-02-22
关于从库的表空间碎片过多

背景

发现一些从库的表比主库大,进行排查,发现是表空间碎片过多,对表空间进行重新整理,表大小恢复正常

反思

  1. 为什么从库多,因为我有个同步脚本,需要获取binlog日志,为了不影响实际数据库,就通过主从的方式,来获取从库的binlog日志
  2. 为什么从库碎片多,我这边的一个猜测这边有二种从库,一种是为了备份,一种是为了同步脚本
    1. 那么为了备份的从库表空间碎片能跟主库保持大概的一致
    2. 那么为了同步脚本的从库表空间碎片就很多
      这是为啥,就因为我用了同步脚本,或者说我去获取了binlog日志导致的???
我来答
添加附件
收藏
分享
问题补充
13条回答
默认
最新
薛晓刚

binlog什么模式?

暂无图片 评论
暂无图片 有用 0
打赏 0
msg
题主
2022-02-22
Row模式
M
msg

Row模式

暂无图片 评论
暂无图片 有用 0
打赏 0
M
msg
升级问题到: 潜在风险
暂无图片 评论
暂无图片 有用 0
打赏 0
薛晓刚

那实在不应该发生这种情况。

暂无图片 评论
暂无图片 有用 0
打赏 0
M
msg

实际发生了,有一些还很离谱image.pngimage.png

暂无图片 评论
暂无图片 有用 0
打赏 0
M
msg

目前能想到的解决方案:就是写个脚本,半夜定时执行,整理超过G单位的表空间
但是无法治根,很难受

暂无图片 评论
暂无图片 有用 0
打赏 0
严少安
暂无图片

什么版本的mysql,表定义是什么样的?

暂无图片 评论
暂无图片 有用 0
打赏 0
M
msg

8.0.18版本的mysql
表引擎是innodb
从库是备份来的,跟主库完全一致

暂无图片 评论
暂无图片 有用 0
打赏 0
伊织鸟

先关注下,感觉还是mysql内部机制的问题

暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
GreatSQL

这种情况很正常,从库上的relay log apply行为跟在主库上不一样,更容易造成碎片。

另外,这种情况似乎在云数据库RDS上更常见。

暂无图片 评论
暂无图片 有用 1
打赏 0
M
msg

但是使用mysql自带的主从同步就不会产生很多的碎片,自写的脚本同步就会产生很多的碎片

暂无图片 评论
暂无图片 有用 0
打赏 0
严少安
暂无图片

自写的脚本同步是如何实现的?用到了什么工具?读主库的binlog解析成sql然后写从库?

暂无图片 评论
暂无图片 有用 0
打赏 0
M
msg
不是,mysql之前是用自带的同步,脚本是获取binlog同步到别的类型数据库
暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
如何检查MySQL中是否存在某一行? (即检查 MySQL 中是否存在电子邮件)
回答 4
selectcount(1)fromtwhereemaillike‘%@%.com%’;
MySQL 8.0.21 漏洞如何修复
回答 4
谢谢各位指导。
硬盘Random读写速度对MySQL数据库业务有影响吗?
回答 1
有影响https://blog.51cto.com/u508239/223542http://blog.itpub.net/30310891/viewspace2787997/
MySQL表中一列添加外键,插入数据,怎么查看表的完整内容?
回答 2
已采纳
如果你是在业务中来控制的外键约束 那么就只自己查了selectfromuserinfowheredepartmentidnotin(selectdidfromdepartment)如果存在数
pg和mysql之中该如何选择?
回答 7
已采纳
https://blog.csdn.net/youzhouliu/article/details/124994728这里面有详细介绍
update语句中是不能直接更新主键嘛?
回答 1
mysql主键就是自增的id,就像序列一样。无业务含义,因为innodb底层这样设计的。不需要去更新。主键不是这样用的
MySQL 两表关联的时候, 驱动表A,和被驱动表B, 是从A表获取部分,全部,还是一行 符号条件的行后跟驱动表做JOIN ?
回答 1
不同的连接方法,具体的执行过程是不一样的,以最简单的NLJOIN 为例,执行过程大体如下:(1)根据筛选条件从A中取得结果集rsA,rsA 中通常包括关联条件列和主键列,也可能包含
如何在 Mysql 中设置数据唯一性?
回答 2
已采纳
给所在的列添加唯一约束就可以了。
MySQL中的 varchar 类型的,用max 函数,有没有什么影响?
回答 2
已采纳
没有什么影响,如果内容是纯数字,那么建议0或者cast成数字再max,如果包含有非数字,就是按从左往右字母依次排序的结果
什么软件可以收集mysql慢查询?
回答 1
如果只是收集的话,可以用filebeat