文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  在 Linux 上最佳化表空間空間配置

17.6.3.8 在 Linux 上最佳化表空間空間配置

您可以最佳化 InnoDB 在 Linux 上如何為單表表空間和通用表空間配置空間。預設情況下,當需要額外空間時,InnoDB 會將頁面配置給表空間,並將 NULL 實體寫入這些頁面。如果經常配置新頁面,此行為可能會影響效能。您可以在 Linux 系統上停用 innodb_extend_and_initialize,以避免將 NULL 實體寫入新配置的表空間頁面。停用 innodb_extend_and_initialize 時,會使用 posix_fallocate() 呼叫將空間配置給表空間檔案,這會保留空間而無需實體寫入 NULL。

當使用 posix_fallocate() 呼叫配置頁面時,預設情況下擴充大小很小,並且通常一次只配置幾個頁面,這可能會導致碎片並增加隨機 I/O。為避免此問題,在啟用 posix_fallocate() 呼叫時,請增加表空間擴充大小。使用 AUTOEXTEND_SIZE 選項,表空間擴充大小最多可以增加 4GB。如需更多資訊,請參閱 第 17.6.3.9 節,「表空間 AUTOEXTEND_SIZE 設定」

InnoDB 會在新配置表空間頁面之前寫入重做日誌記錄。如果頁面配置操作中斷,則會在復原期間從重做日誌記錄重新執行該操作。(從重做日誌記錄重新執行的頁面配置操作會將 NULL 實體寫入新配置的頁面。)無論 innodb_extend_and_initialize 設定為何,都會在配置頁面之前寫入重做日誌記錄。

在非 Linux 系統和 Windows 上,InnoDB 會將新頁面配置給表空間,並將 NULL 實體寫入這些頁面,這是預設行為。嘗試在這些系統上停用 innodb_extend_and_initialize 會傳回以下錯誤

在此平台上不支援變更 innodb_extend_and_initialize。回復為預設值。