搜尋

首頁  >  問答  >  主體

MySQL InnoDB 從表中刪除資料行後不釋放磁碟空間

我有一個使用InnoDB儲存引擎的MySQL表;它包含大約2M資料行。當我從表中刪除資料行時,它沒有釋放分配的磁碟空間。執行optimize table指令後,ibdata1檔案的大小也沒有減少。

有什麼辦法可以從 MySQL 回收磁碟空間嗎?

我的處境很糟糕;該應用程式在大約 50 個不同的位置運行,現在幾乎所有位置都出現磁碟空間不足的問題。

P粉148434742P粉148434742408 天前694

全部回覆(2)我來回復

  • P粉183077097

    P粉1830770972023-10-15 17:09:49

    我自己也遇到了同樣的問題。

    發生的情況是,即使刪除資料庫,innodb 仍然不會釋放磁碟空間。我必須匯出,停止mysql,手動刪除文件,啟動mysql,建立資料庫和用戶,然後匯入。感謝上帝,我只有 200MB 的行,但它節省了 250GB 的 innodb 檔案。

    設計失敗。

    回覆
    0
  • P粉340980243

    P粉3409802432023-10-15 16:24:36

    MySQL 不會減少 ibdata1 的大小。曾經。即使您使用優化表來釋放已刪除記錄所使用的空間,它稍後也會重複使用它。

    另一種方法是將伺服器配置為使用 innodb_file_per_table,但這需要備份、刪除資料庫和復原。積極的一面是,在 優化表格

    回覆
    0
  • 取消回覆