首頁 > 資料庫 > mysql教程 > 如何清理和縮小 MySQL InnoDB 儲存引擎?

如何清理和縮小 MySQL InnoDB 儲存引擎?

Mary-Kate Olsen
發布: 2024-12-18 22:09:17
原創
213 人瀏覽過

How Can I Clean Up and Shrink My MySQL InnoDB Storage Engine?

MySQL InnoDB 儲存引擎清理

要清理MySQL InnoDB 儲存引擎並從已刪除的表中刪除數據,請按照以下步驟操作操作:

理解InnoDB架構

InnoDB 在 ibdata1文件中儲存了六種類型的信息:

  • 表格資料
  • 表索引
  • MVCC(多重版本並發)控制)數根據
  • 表元資料(資料字典)
  • 雙寫入緩衝區
  • 插入緩衝區

你可以運行OPTIMIZE TABLE 嗎?

使用 OPTIMIZE TABLE儲存在 ibdata1 中的 InnoDB 表有兩個效果:

  • 它使表格的資料和索引在檔案內連續。
  • 它透過附加修改的資料和索引使 ibdata1 成長。

你可以運行 OPTIMIZE TABLE 嗎innodb_file_per_table?

啟用此選項後,OPTIMIZE TABLE 會為每個 InnoDB 表創建單獨的 .ibd 文件。雖然這種隔離將資料和索引與 ibdata1 分開,但它不會從 ibdata1 中刪除資料字典條目。

InnoDB 基礎設施清理

要縮小ibdata1 並刪除不必要的資料:

  1. 將所有資料庫轉儲到SQL 文字檔案🎜>
  2. 將所有資料庫轉儲到SQL 文字檔案🎜>
  3. 將所有資料庫轉儲到SQL 文字檔案🎜>
  4. 將所有資料庫轉儲到SQL 檔案中(SQLData.sql).
  5. 刪除除mysql 和information_schema之外的所有資料庫。保留使用者授權。

    將 innodb_fast_shutdown 設為 0 以刷新交易變更。
    • 關閉 MySQL。
    • 使用這些修改 my.cnf(或my.ini)設定:
    innodb_file_per_table
  6. innodb_flush_method=O_DIRECTinnodb_log_file_size=1Gfile_size=1G%(確保它是 25% innodb_buffer_pool_size)
  7. 刪除 ibdata
  8. 和 ib_logfile
檔案。

啟動 MySQL。 匯入 SQLData.sql。 經過這個過程, ibdata1 將只包含表元數據,各個 InnoDB 表將儲存在擴展名為 .frm 和 .ibd 的單獨檔案中。然後可以使用 OPTIMIZE TABLE 來縮小表的 .ibd 檔案。

以上是如何清理和縮小 MySQL InnoDB 儲存引擎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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