加入收藏 | 设为首页 | 会员中心 | 我要投稿 好传媒网 (https://www.haochuanmei.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 移动互联 > 通讯 > 正文

MySQL5.7中如何进行数据碎片整理

发布时间:2021-12-20 11:49:59 所属栏目:通讯 来源:互联网
导读:本篇文章给大家分享的是有关MySQL5.7中如何进行数据碎片整理,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 对于innodb存储引擎,例如删除一行,这些行只是标记为已删除,而不是真正从索
本篇文章给大家分享的是有关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:整理操作的次数
 
以上就是MySQL5.7中如何进行数据碎片整理,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

(编辑:好传媒网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读