mysql高水位問題解決辦法


數據庫中有些表使用delete刪除了一些行后,發現空間並未釋放
產生原因:類比Oracle的高水位線產生原理

  • delete 不會釋放文件高水位 
  • truncate會釋放 ,實際是把.ibd文件刪掉了,再建一個。
  • delete + alter engine=innodb會釋放, 相當於重建表。

對應解決方案:

  • 執行 OPTIMIZE TABLE 表名:只對MyISAM, BDB和InnoDB表起作用,而且會鎖表!
  • 寫一SQL,創建新表,刪除舊表,新表重命名:生產環境中不停機情況下,數據比較難處理
  • 考慮用表分區,過期的表分區直接刪除,不存在高水位問題,推薦。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM