文件首頁
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 參考手冊  /  ...  /  最佳化磁碟 I/O

10.12.1 最佳化磁碟 I/O

本節說明當您可以為資料庫伺服器配置更多更快的儲存硬體時,如何設定儲存裝置。如需最佳化 InnoDB 設定以改善 I/O 效能的資訊,請參閱章節 10.5.8,「最佳化 InnoDB 磁碟 I/O」

  • 磁碟搜尋是一個巨大的效能瓶頸。當資料量開始變得如此之大以至於無法進行有效的快取時,這個問題會變得更加明顯。對於您或多或少隨機存取資料的大型資料庫,您可以確定您至少需要一次磁碟搜尋來讀取,以及幾次磁碟搜尋來寫入。為了最大限度地減少這個問題,請使用具有低搜尋時間的磁碟。

  • 透過將檔案符號連結到不同的磁碟或將磁碟條紋化,來增加可用的磁碟軸數量(從而減少搜尋額外負荷)

    • 使用符號連結

      這表示,對於 MyISAM 表格,您可以將索引檔案和資料檔案從它們在資料目錄中的通常位置符號連結到另一個磁碟(也可能是條紋化的)。假設該磁碟也未用於其他用途,這會使搜尋和讀取時間都變得更好。請參閱章節 10.12.2,「使用符號連結」

      不支援將符號連結用於 InnoDB 表格。但是,可以將 InnoDB 資料和記錄檔放置在不同的實體磁碟上。如需更多資訊,請參閱章節 10.5.8,「最佳化 InnoDB 磁碟 I/O」

    • 條紋化

      條紋化表示您有多個磁碟,並將第一個區塊放在第一個磁碟上,將第二個區塊放在第二個磁碟上,並將第 N 個區塊放在 (N MOD number_of_disks) 磁碟上,依此類推。這表示如果您的正常資料大小小於條紋大小(或完美對齊),您會獲得更好的效能。條紋化非常依賴於作業系統和條紋大小,因此請使用不同的條紋大小對您的應用程式進行基準測試。請參閱章節 10.13.2,「使用您自己的基準測試」

      條紋化的速度差異非常依賴於參數。根據您如何設定條紋化參數和磁碟數量,您可能會得到數量級的差異。您必須選擇針對隨機或循序存取進行最佳化。

  • 為了可靠性,您可能想要使用 RAID 0+1(條紋化加鏡像),但在這種情況下,您需要 2 × N 個磁碟機來保存 N 個磁碟機的資料。如果您有足夠的資金,這可能是最好的選擇。但是,您可能還需要投資一些磁碟區管理軟體才能有效處理它。

  • 一個不錯的選擇是根據資料類型的關鍵程度來變更 RAID 層級。例如,將可以重新產生的半重要資料儲存在 RAID 0 磁碟上,但將非常重要的資料(例如主機資訊和記錄)儲存在 RAID 0+1 或 RAID N 磁碟上。如果您的寫入次數很多,RAID N 可能會是一個問題,因為需要時間來更新同位位元。

  • 您也可以設定資料庫使用的檔案系統參數。

    如果您不需要知道檔案上次存取的時間(這在資料庫伺服器上並不是真的很有用),您可以使用 -o noatime 選項來掛載您的檔案系統。這樣做會跳過更新檔案系統 inode 中上次存取時間的動作,從而避免一些磁碟搜尋。

    在許多作業系統中,您可以透過使用 -o async 選項掛載檔案系統,將檔案系統設定為非同步更新。如果您的電腦相當穩定,這應該可以在不犧牲太多可靠性的情況下提供更好的效能。(在 Linux 上,此標誌預設為開啟。)

使用 NFS 與 MySQL

在考慮是否要將 NFS 與 MySQL 一起使用時,您應該謹慎。潛在的問題,會因作業系統和 NFS 版本而異,包括以下幾點:

  • 放置在 NFS 磁碟區上的 MySQL 資料和日誌檔案可能會被鎖定而無法使用。當多個 MySQL 實例存取相同的資料目錄,或由於停電等原因導致 MySQL 未正常關閉時,可能會發生鎖定問題。NFS 版本 4 透過引入諮詢和租賃鎖定來解決底層的鎖定問題。然而,不建議在多個 MySQL 實例之間共用資料目錄。

  • 由於接收到的訊息順序錯誤或遺失的網路流量而導致的資料不一致。為了避免這個問題,請將 TCP 與 hardintr 掛載選項一起使用。

  • 最大檔案大小限制。NFS 版本 2 用戶端只能存取檔案的最低 2GB(有號 32 位元偏移)。NFS 版本 3 用戶端支援較大的檔案(最高 64 位元偏移)。最大支援的檔案大小也取決於 NFS 伺服器的本機檔案系統。

在專業的 SAN 環境或其他儲存系統中使用 NFS,往往比在這種環境之外使用 NFS 更可靠。然而,SAN 環境中的 NFS 可能比直接連接或匯流排連接的非旋轉儲存慢。

如果您選擇使用 NFS,建議使用 NFS 版本 4 或更高版本,並且在部署到生產環境之前,徹底測試您的 NFS 設定。