使用 Amazon RDS Optimized Writes 改善 MariaDB 的寫入效能 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 Amazon RDS Optimized Writes 改善 MariaDB 的寫入效能

您可以使用 RDS Optimized Writes for MariaDB 來改善寫入交易的效能。當您的 RDS for MariaDB 資料庫使用 RDS Optimized Writes 時,它可以實現高達兩倍的寫入交易輸送量。

RDS Optimized Writes 的概觀

當您開啟 RDS Optimized Writes 時,您的 RDS for MariaDB 資料庫只會在將資料排清至持久性儲存體時寫入一次,而不需要雙寫緩衝區。資料庫會繼續為可靠的資料庫交易提供 ACID 屬性保護,以及改善的效能。

關聯式資料庫 (例如 MariaDB) 為可靠的資料庫交易提供不可分割性、一致性、隔離和耐久性的 ACID 屬性。為了協助提供這些屬性,MariaDB 會使用稱為雙寫緩衝區的資料儲存區域,防止部分頁面寫入錯誤。當資料庫正在更新頁面時發生硬體故障 (例如停電) 時,就會發生這些錯誤。MariaDB 資料庫可以偵測部分頁面寫入,並使用雙寫緩衝區中的頁面複本進行復原。雖然這項技術可提供保護,但也會產生額外的寫入操作。如需 MariaDB 雙寫緩衝區的詳細資訊,請參閱 MariaDB 文件中的雙寫緩衝區

開啟 RDS Optimized Reads 後,您的 RDS for MariaDB 資料庫只會在將資料排清至持久性儲存體時寫入一次,而不需使用雙寫緩衝區。如果您在 RDS for MariaDB 資料庫上執行大量寫入工作負載,則 RDS Optimized Reads 很有用。具有大量寫入工作負載的資料庫範例包括支援數位支付、金融交易和遊戲應用程式的資料庫。

這些資料庫會在使用 AWS Nitro 系統的資料庫執行個體類別上執行。由於這些系統中的硬體組態,資料庫可以在一個步驟中可靠且持久地將 16 KiB 頁面直接寫入至資料檔案。 AWS 硝基系統使 RDS 優化寫入成為可能。

您可以設定新的資料庫參數 rds.optimized_writes,以控制 RDS for MariaDB 資料庫的 RDS Optimized Writes 功能。在下列版本的 RDS for MariaDB 的資料庫參數群組中存取此參數:

  • 10.11.4 和更高的 10.11 版本

  • 10.6.10 和更高的 10.6 版本

請使用下列值設定參數:

  • AUTO – 開啟 RDS Optimized Writes (如果資料庫支援它)。關閉 RDS Optimized Writes (如果資料庫不支援它)。此設定是預設值。

  • OFF – 關閉 RDS Optimized Writes,即使資料庫支援它也一樣。

如果您將設定為使用 RDS Optimized Writes 的 RDS for MariaDB 資料庫遷移至不支援此功能的資料庫執行個體類別,RDS 會自動關閉資料庫的 RDS Optimized Writes。

當 RDS Optimized Writes 關閉時,資料庫會使用 MariaDB 雙寫緩衝區。

若要判斷 RDS for MariaDB 資料庫是否使用 RDS Optimized Writes,請檢視資料庫 innodb_doublewrite 參數目前的值。如果資料庫使用 RDS Optimized Writes,則此參數會設為 FALSE (0)。

使用 RDS Optimized Writes

當您使用 RDS 主控台、或 RDS API 建立適用於 MariaDB 的 RDS 資料庫時,您可以開啟 RDS 最佳化寫入。 AWS CLI在資料庫建立期間滿足下列兩個條件時,RDS Optimized Writes 會自動開啟:

  • 您指定一個支援 RDS Optimized Writes 的資料庫引擎版本和資料庫執行個體類別。

    • 下列 RDS for MariaDB 版本支援 RDS Optimized Writes:

      • 10.11.4 和更高的 10.11 版本

      • 10.6.10 和更高的 10.6 版本

      如需 RDS for MariaDB 版本的相關資訊,請參閱 MariaDB 在 Amazon 版本 RDS

    • 使用下列資料庫執行個體類別的 RDS for MariaDB 資料庫支援 RDS Optimized Writes:

      • db.m7g

      • db.m6g

      • DB.m6gd

      • db.m6i

      • db.m5

      • db.m5d

      • db.r7g

      • db.r6g

      • db.r6gd

      • db.r6i

      • db.r5

      • db.r5b

      • db.r5d

      • db.x2idn

      • db.x2iedn

      如需資料庫執行個體類別的相關資訊,請參閱 數據庫實例類

      資料庫執行個體類別的可用性與 AWS 區域. 若要判斷特定資料庫執行個體類別是否受支援 AWS 區域,請參閱確定資料庫執行個體類別支援 AWS 區域

  • 在與資料庫相關聯的參數群組中,rds.optimized_writes 參數設為 AUTO。在預設參數群組中,此參數一律設為 AUTO

如果您想要使用支援 RDS Optimized Writes 的資料庫引擎版本和資料庫執行個體類別,但不想要使用此功能,則請在建立資料庫時指定自訂參數群組。在此參數群組中,將 rds.optimized_writes 參數設為 OFF。如果您想要資料庫稍後使用 RDS Optimized Writes,則可以將參數設為 AUTO 將其開啟。如需建立自訂參數群組和設定參數的相關資訊,請參閱 的參數組 RDS

如需建立資料庫執行個體的相關資訊,請參閱 建立 Amazon RDS 資料庫執行個體

使用 RDS 主控台建立 RDS for MariaDB 資料庫時,您可以篩選支援 RDS Optimized Writes 的資料庫引擎版本和資料庫執行個體類別。開啟篩選條件後,您可以從可用的資料庫引擎版本和資料庫執行個體類別中進行選擇。

若要選擇支援 RDS 最佳化寫入的資料庫引擎版本,請在引擎版本中篩選支援它的 RDS for MariaDB 資料庫引擎版本,然後選擇版本。

針對引擎版本開啟 Amazon RDS 最佳化寫入篩選器的「引擎選項」區段。

Instance configuration (執行個體組態) 區段中,篩選支援 RDS Optimized Writes 的資料庫執行個體類別,然後選擇資料庫執行個體類別。

針對資料庫執行個體類別開啟 Amazon RDS 優化寫入篩選器的執行個體組態區段。

在做出這些選擇之後,您可以選擇其他符合您需求的設定,並使用主控台完成建立 RDS for MariaDB 資料庫。

若要使用建立資料庫執行個體 AWS CLI,請使用create-db-instance指令。確定 --engine-version--db-instance-class 值支援 RDS Optimized Writes。此外,確定與資料庫執行個體相關聯的參數群組已將 rds.optimized_writes 參數設為 AUTO:此範例會將預設參數群組與資料庫執行個體建立關聯。

範例 建立使用 RDS Optimized Writes 的資料庫執行個體

對於LinuxmacOS、或Unix:

aws rds create-db-instance \ --db-instance-identifier mydbinstance \ --engine mariadb \ --engine-version 10.6.10 \ --db-instance-class db.r5b.large \ --manage-master-user-password \ --master-username admin \ --allocated-storage 200

在 Windows 中:

aws rds create-db-instance ^ --db-instance-identifier mydbinstance ^ --engine mariadb ^ --engine-version 10.6.10 ^ --db-instance-class db.r5b.large ^ --manage-master-user-password ^ --master-username admin ^ --allocated-storage 200

您可以使用 CreateDBInstance 操作,建立資料庫執行個體。使用此操作時,確定 EngineVersionDBInstanceClass 值支援 RDS Optimized Writes。此外,確定與資料庫執行個體相關聯的參數群組已將 rds.optimized_writes 參數設為 AUTO

在現有資料庫上啟用 RDS Optimized Writes

為了修改現有的 RDS for MariaDB,以開啟 RDS Optimized Writes,必須已使用支援的資料庫引擎版本和資料庫執行個體類別建立資料庫。此外,必須在 2023 年 3 月 7 日發行 RDS Optimized Writes 之後建立了資料庫,因為所需的基礎檔案系統組態與發行之前所建立之資料庫的組態不相容。如果符合這些條件,您可以透過將 rds.optimized_writes 參數設定為 AUTO 來開啟 RDS Optimized Writes。

如果使用支援的引擎版本、執行個體類別或檔案系統組態,來建立您的資料庫,您可以使用 RDS 藍/綠部署遷移至支援的組態。建立藍/綠部署時,請執行以下動作:

  • 選取在綠色資料庫上啟用 Optimized Writes,然後指定支援 RDS Optimized Writes 的引擎版本和資料庫執行個體。如需受支援引擎版本和執行個體類別的清單,請參閱 使用 RDS Optimized Writes

  • 儲存體下,選擇升級儲存體檔案系統組態。此選項會將資料庫升級為相容的基礎檔案系統組態。

建立藍/綠部署時,如果將 rds.optimized_writes 參數設定為 AUTO,則會在綠色環境上自動啟用 RDS Optimized Writes。然後,您可以轉換藍/綠部署,將綠色環境提升至新的生產環境。

如需詳細資訊,請參閱 建立藍/綠部署

RDS Optimized Writes 的限制

當您從快照還原 RDS for MariaDB 資料庫時,只有在下列所有條件都滿足時,才能開啟資料庫的 RDS Optimized Writes:

  • 快照集是從支援 RDS Optimized Writes 的資料庫建立的。

  • 快照是從發佈 RDS Optimized Writes 之後所建立的資料庫中建立的。

  • 快照還原至支援 RDS Optimized Writes 的資料庫。

  • 還原的資料庫與將 rds.optimized_writes 參數設為 AUTO 的參數群組相關聯。