文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  在 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。回復為預設值。