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


17.9.1.6 OLTP 工作負載的壓縮

傳統上,InnoDB 壓縮功能主要建議用於唯讀或幾乎唯讀的工作負載,例如在資料倉儲組態中。快速但相對小且昂貴的SSD儲存裝置的興起,也使壓縮對OLTP工作負載具有吸引力:高流量、互動式網站可以使用壓縮資料表,透過頻繁的INSERTUPDATEDELETE操作的應用程式來減少其儲存需求和每秒 I/O 操作 (IOPS)。

這些設定選項可讓您調整特定 MySQL 執行個體的壓縮運作方式,重點在於針對寫入密集型操作的效能和延展性

  • innodb_compression_level可讓您調高或調低壓縮程度。較高的值可讓您在儲存裝置上放入更多資料,但代價是在壓縮期間產生更多的 CPU 負擔。較低的值可讓您在儲存空間不重要時,或您預期資料沒有特別可壓縮時,減少 CPU 負擔。

  • innodb_compression_failure_threshold_pct指定在更新壓縮資料表期間,壓縮失敗的臨界點。當超過此閾值時,MySQL 會開始在每個新的壓縮頁面內留下額外的可用空間,動態調整可用空間量,最多為innodb_compression_pad_pct_max指定的頁面大小百分比

  • innodb_compression_pad_pct_max可讓您調整每個頁面內保留的最大空間量,以記錄壓縮列的變更,而不需要再次壓縮整個頁面。值越高,在不重新壓縮頁面的情況下可以記錄的變更就越多。只有當指定百分比的壓縮操作在執行階段失敗時,MySQL 才會對每個壓縮資料表中的頁面使用可變數量的可用空間,需要執行昂貴的操作來分割壓縮頁面。

  • innodb_log_compressed_pages可讓您停用將重新壓縮頁面的映像寫入重做日誌。當壓縮資料發生變更時,可能會發生重新壓縮。預設會啟用此選項,以防止在復原期間使用不同版本的zlib壓縮演算法時可能發生的損壞。如果您確定zlib版本不會變更,請停用innodb_log_compressed_pages,以減少修改壓縮資料的工作負載的重做日誌產生。

由於處理壓縮資料時,有時會需要同時在記憶體中保留壓縮版本和未壓縮版本的頁面,因此當搭配 OLTP 風格的工作負載使用壓縮時,請準備好增加 innodb_buffer_pool_size 組態選項的值。