码迷,mamicode.com
首页 > 其他好文 > 详细

在主从服务器上,同一个表的表空间文件大小相差特别大,可能原因是什么,怎么解决?

时间:2020-06-16 18:48:49      阅读:65      评论:0      收藏:0      [点我收藏+]

标签:color   sql   其他   style   com   sse   class   weight   mys   

在主从服务器上,同一个表的表空间文件大小相差特别大,可能原因是什么,怎么解决?


可能的原因:
    1、MySQL表默认是InnoDB引擎且目前索引只支持B+树索引,在数据的增删改过程中,会导致表产生碎片,主从服务器上同张表的碎片率不同也会导致表空间相差很大。
    2、主库整理过碎片,从库是从原先的未整理的物理备份中恢复出来的。
    3、主从表结构不一致,如从库可能比主库多索引。
    4、主从表的行格式不一致,如主库为dynamic,从库为compressed。
    5、个别云数据库在从库上可能采用特殊的并行复制技术,导致在从库上有更高的碎片率(有个极端的案例,同一个表在主库只有6G,从库上则有将近150G)


解决方式:
    1、保证主从表结构一致(包括page大小、索引、行格式等)
    2、在业务低峰期使用pt-osc或gh-ost通过alter table xxx engine=innodb;重整表空间,消除碎片(切记:执行前要先检查有无未结束事务或其他未释放锁)

 

在主从服务器上,同一个表的表空间文件大小相差特别大,可能原因是什么,怎么解决?

标签:color   sql   其他   style   com   sse   class   weight   mys   

原文地址:https://www.cnblogs.com/zhouwanchun/p/13143280.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!