使用 SQL 命令 OPTIMIZE TABLE 释放表空间


 

前提:

1、删除了表的一大部分;

2、已经对含有可变长度行的表(含有VARCHAR, BLOB或TEXT列的表)进行了很多更改。

--------------------------------------------------------------------------------------------

作用:

利用未使用的空间,释放出来,并整理数据文件的碎片。

--------------------------------------------------------------------------------------------

频率:

不需要经常运行,每周一次或每月一次。

--------------------------------------------------------------------------------------------

试用范围:

OPTIMIZE TABLE只对MyISAM, BDB和InnoDB表起作用。
--------------------------------------------------------------------------------------------

注意事项:

1、在OPTIMIZE TABLE运行过程中,MySQL会锁定表。如果涉及海量的数据表,应该考虑使用一些运维手段避免现网的服务受到影响。

 

2、使用alter table table_name engine=innodb也可以同样达到释放空洞的效果。这是由于在转换数据引擎(即便没有真正转换)的时候,mysql也会将表中的数据读取出来,再重新写入,在这个过程中,空洞自然就没有了。

 

--------------------------------------------------------------------------------------------

 

参考资料:

mysql中OPTIMIZE TABLE的作用

http://blog.sina.com.cn/s/blog_3dbab2840100c13p.html

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM