MySQL5.7新特性之数据碎片整理

  对于innodb存储引擎,例如删除一行,这些行只是标记为“已删除”,而不是真正从索引中物理删除了,因而空间也没有真正得到释放。Innodb的Purge线程会异步的来清理这些没有用的索引键和行,但是依然没有把这些释放出来的空间给系统用,因而会导致页面中存在很多空洞。   MySQL5.7之前的版本中,需要使用OPTIMIZE TABLE或者ALTER TABLE TABLE_NAME ENGINE=InnoDB(比如为独立表空间),改方法相当于新建一个表,进行一次导出/导入,然后删除旧表。   MySQL5.7版本中,合并了Facebook的碎片整理代码,需要把下面的配置加到my.cnf配置文件中: [mysqld] innodb_defragment=1 #打开或者关闭InnoDB碎片整理算法。 innodb_defragment_n_pages=16 #一次性读取多少个页面进行合并整理操作。范围是2-32,默认值是7   这样配置之后,新的碎片整理功能就会替代原有的OPTIMIZE TABLE算法,加快了碎片整理的时间,也不会有新的表生成。   以下是状态参数说明: Innodb_defragment_compression_failures:整理碎片时候重新压缩页面失败的次数 Innodb_defragment_failures:整理操作失败的次数(如果有可压缩的页面) Innodb_defragment_count:整理操作的次数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值