温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2021-11-16 09:26:12 来源:亿速云 阅读:387 作者:柒染 栏目:MySQL数据库

本篇文章给大家分享的是有关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中如何进行数据碎片整理,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI