使用 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