」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何減小 MySQL ibdata1 檔案的大小?

如何減小 MySQL ibdata1 檔案的大小?

發佈於2024-12-21
瀏覽:211

How Can I Reduce the Size of My MySQL ibdata1 File?

在MySQL中清理和縮小ibdata1檔案

在R中利用MySQL進行資料分析時,使用者可能會遇到ibdata1檔案大小的問題儘管沒有儲存數據,但仍過度增長。本文針對這個問題,提供了全面的解決方案。

ibdata1檔案成長的原因

ibdata1檔案包含共享表空間中儲存的資料表的資料和索引。預設情況下,MySQL 將所有表儲存在這個單一檔案中,導致它不斷擴展。刪除資料庫和表只會從伺服器中刪除其元數據,但檔案本身保持不變。

解決方案:啟用「Separate File-per-Table」

以避免ibdata1為了防止檔案過度成長,配置MySQL 將每個表及其索引儲存為單獨的文件。現在 MySQL 5.6.6 及更高版本中預設啟用此功能。如果使用早期版本,請將以下行新增至 my.cnf 檔案:

[mysqld]
innodb_file_per_table=1

這將確保新建立的資料庫和表格使用單獨的 ibd* 檔案而不是 ibdata1。

從ibdata1 回收空間

To釋放ibdata1佔用的空間,步驟如下:

  1. 轉儲所有資料庫
  2. 刪除除mysql 和Performance_schema 之外的所有資料庫。
  3. 停止 MySQL。
  4. 刪除 ibdata1 和 ib_log 檔案。
  5. 啟動 MySQL。
  6. 恢復轉儲的資料庫。

這個過程將刪除所有表和數據,因此請確保在繼續之前備份了必要的資訊。

資訊架構注意事項

information_schema 是讀取的集合只有視圖,而不是實際的表。它不佔用磁碟上的任何文件,並在重新啟動MySQL時重新產生。因此,刪除它對 ibdata1 檔案大小沒有影響。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3