降低 mysql table 在硬碟的實際用量
2019 Jul 30 技術筆記
最近 vps 的硬碟又不夠了 想出了一連串降低用量的方法 本來想說 把過大的 table 切成數十個 原本的 table 有 八億筆資料 把它切割成五千萬筆一個 table 然後把這些 table 都會出成 sql 檔案 存在硬碟裡 因為這些資料其實永遠都不會變動了 而且暫時也用不到 有需要再把他 restore 到便宜的裝置上就好 (例如 NAS) 用程式跑了好一陣子以後 也都下載完了 發現原本的 table 在硬碟裡面還是佔了 80G 但如果從 phpmyadmin 看 卻說只有佔用了 10G 問題是什麼呢? 如果你的 table 用的是 innodb 一個 table 會有兩個檔案 其中一個吃容量很大的叫做 ibd 這個檔案會有一些 sql 的歷程 那些歷程是萬一你的 table 壞掉的時候 可以讓你重跑的資料 即使是你把資料刪除大部分 這個檔案只會變大不會變小 後來我想到一個方法 只要你弄一個新的 table 然後再把舊的 table 的資料倒過去 歷程並不會被複製過去 只有資料會被複製過去 所以檔案大小就會變小 複製完畢後 只要把舊的刪掉 再把新的名稱改成舊的 就完成啦 至於歷程會不見的部分 就看你有沒有需要用到歷程的功能 自己分析一下
ABOUT ME

路老闆 Louis
路老闆有限公司創辦人、Compassio 個人品牌一站式網站系統的開發者。二十年網站與行銷實戰經驗,長期陪伴講師、顧問與創作者把專業變成品牌。每週透過電子報與 Podcast《路老闆的個人品牌診療室》,分享個人品牌、網站經營與 AI 行銷的實務觀察。
如想留言評分,請先 登入會員!