本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。
InnoDB_Flush 方法
貢獻者
建議變更
InnoDB_flush_method 參數指定 InnoDB 如何開啟及排清記錄檔和資料檔。
最佳化
在 InnoDB 最佳化中、如果適用、設定此參數會調整資料庫效能。
下列選項用於透過 InnoDB 排清檔案:
-
fsync
。InnoDB 使用fsync()
系統呼叫以清除資料和記錄檔。此選項為預設設定。 -
O_DSYNC
。InnoDB 使用O_DSYNC
用於打開和刷新日誌文件和 fsync ()以刷新數據文件的選項。InnoDB 不使用O_DSYNC
直接來說、因為 UNIX 的許多種類都有問題。 -
O_DIRECT
。InnoDB 使用O_DIRECT
選項(或directio()
在 Solaris 上)開啟資料檔案及使用fsync()
清除資料和記錄檔。此選項可在某些版本的 GNU/Linux 、 FreeBSD 和 Solaris 上使用。 -
O_DIRECT_NO_FSYNC
。InnoDB 使用O_DIRECT
排清 I/O 時的選項;不過、它會跳過fsync()
之後進行系統通話。此選項不適用於某些類型的檔案系統(例如 XFS )。如果您不確定檔案系統是否需要fsync()
系統呼叫(例如為了保留所有檔案中繼資料)使用O_DIRECT
選項。
觀察
在 NetApp 實驗室測試中、 fsync
預設選項用於 NFS 和 SAN 、與相較之下、這是一項很棒的效能改進工具 O_DIRECT
。使用「齊平」方法時為 O_DIRECT
使用 ONTAP 時、我們觀察到用戶端會以序列方式、在 4096 區塊的邊界寫入大量的單位位元組寫入資料。這些寫入會增加網路延遲並降低效能。