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

网友投稿 267 2023-12-27

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

本篇文章给大家分享的是有关MySQL5.7中如何进行数据碎片整理,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

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

对于innodb存储引擎,例如删除一行,这些行只是标记为“已删除”,而不是真正从索引中物理删除了,因而空间也没有真正得到释放。Innodb的Purge线程会异步的来清理这些没有用的索引键和行,但是依然没有把这些释放出来的空间给系统用,因而会导致页面中存在很多空洞。

MySQL5.7之前的版本中,需要使用OPTIMIZE TABLE或者ALTER TABLE TABLE_NAME ENGINE=InnoDB(比如为独立表空间),改方法相当于新建一个表,进行一次导出/导入,然后删除旧表。

MySQL5.7版本中,合并了Facebook的碎片整理代码,需要把下面的配置加到my-f配置文件中:

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:mysql复制基础有哪些呢
下一篇:MySQL5.7中的函数索引怎么用
相关文章

 发表评论

暂时没有评论,来抢沙发吧~