首頁 > 資料庫 > mysql教程 > 如何回收MySQL InnoDB表佔用的磁碟空間?

如何回收MySQL InnoDB表佔用的磁碟空間?

Linda Hamilton
發布: 2025-01-02 20:07:39
原創
462 人瀏覽過

How Can I Reclaim Disk Space Used by MySQL InnoDB Tables?

MySQL InnoDB 中的磁碟空間回收

使用InnoDB 儲存引擎從MySQL 表中刪除資料行時,分配的磁碟空間不會被佔用。自動釋放。這可能會導致 ibdata1 檔案大小不斷增加且潛在的磁碟空間問題。

解決此問題的一種方法是使用「最佳化表」命令。但是,此命令不會減小 ibdata1 檔案的大小。 MySQL 有意保留此空間,以便在未來的操作中可能重複使用。

要從 MySQL 回收磁碟空間,有兩種主要方法:

1。刪除並重新建立表格:

  • 刪除現有表。
  • 使用 ROW_FORMAT=COMPRESSED 選項重新建立具有相同架構的新表。
  • 將資料重新插入到新表中。

此方法釋放了已指派磁碟空間,但需要備份和還原。

2.設定innodb_file_per_table:

  • 編輯MySQL配置檔案(my.cnf)並新增以下行:

    innodb_file_per_table=1
    登入後複製
  • 重新啟動MySQL服務.

此選項建立一個單獨的.ibd 檔案資料庫中的每個表。當您刪除資料行並執行「最佳化表」時,該表的 .ibd 檔案的大小將會減少。

以上是如何回收MySQL InnoDB表佔用的磁碟空間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板