當您的庫中刪除了大量的數據后,您可能會發現數據文件尺寸並沒有減小。這是因為刪除操作后在數據文件中留下碎片所致。OPTIMIZE TABLE 是指對表進行優化。如果已經刪除了表的一大部分數據,或者如果已經對含有可變長度行的表(含有 VARCHAR 、 BLOB 或 TEXT 列的表)進行了很多更改,就應該使用 OPTIMIZE TABLE 命令來進行表優化。這個命令可以將表中的空間碎片進行合並,並且可以消除由於刪除或者更新造成的空間浪費 。OPTIMIZE TABLE 命令只對 MyISAM 、 BDB 和 InnoDB 表起作用 。表優化的工作可以每周或者每月定期執行,對提高表的訪問效率有一定的好處,但是需要注意的是,優化表期間會鎖定表,所以一定要安排在空閑時段進行。
結合mysql官方網站的信息,個人是這樣理解的。當你刪除數據 時,mysql並不會回收,被已刪除數據的占據的存儲空間,以及索引位。而是空在那里,而是等待新的數據來彌補這個空缺,這樣就有一個缺少,如果一時半 會,沒有數據來填補這個空缺,那這樣就太浪費資源了。所以對於寫比較頻煩的表,要定期進行optimize,一個月一次,看實際情況而定了。
舉個例子來說吧。有100個php程序員辭職了,但是呢只是人走了,php的職位還在那里,這些職位不會撤銷,要等新的php程序來填補這些空位。招一個好的程序員,比較難。我想大部分時間會空在那里。哈哈。
參考:https://www.cnblogs.com/shawnloong/archive/2013/02/07/2908911.html
具體操作:打開Mysql命令行,輸入數據庫密碼,進入要操作的數據庫(命令行是:use databaseName;),然后運行optimize table tableName;