1. 程式人生 > >OPTIMIZE TABLE MYSQL

OPTIMIZE TABLE MYSQL

                    OPTIMIZE TABLE MYSQL

 

轉載:https://segmentfault.com/a/1190000012568841

Mysql庫中刪除了大量的資料後,您可能會發現資料檔案尺寸並沒有減小。這是因為刪除操作後在資料檔案中留下碎片所致。OPTIMIZE TABLE 是指對錶進行優化。如果已經刪除了表的一大部分資料,或者如果已經對含有可變長度行的表(含有 VARCHAR 、 BLOB 或 TEXT 列的表)進行了很多更改,就應該使用 OPTIMIZE TABLE 命令來進行表優化。這個命令可以將表中的空間碎片進行合併,並且可以消除由於刪除或者更新造成的空間浪費 。OPTIMIZE TABLE 命令只對 MyISAM 、 BDB 和 InnoDB 表起作用 。表優化的工作可以每週或者每月定期執行,對提高表的訪問效率有一定的好處,但是需要注意的是,優化表期間會鎖定表,所以一定要安排在空閒時段進行。

mysql> optimize table tb_notice;

當你刪除資料 時,mysql並不會回收,被已刪除資料的佔據的儲存空間,以及索引位。而是空在那裡,而是等待新的資料來彌補這個空缺,這樣就有一個缺少,如果一時半 會,沒有資料來填補這個空缺,那這樣就太浪費資源了。所以對於寫比較頻煩的表,要定期進行optimize

在多數的設定中,您根本不需要執行OPTIMIZE TABLE。即使您對可變長度的行進行了大量的更新,您也不需要經常執行,每週一次或每月一次 即可,只對特定的表執行。