使用 My 的RDS最佳化寫入來改善寫入效能SQL - Amazon Relational Database Service

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

使用 My 的RDS最佳化寫入來改善寫入效能SQL

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

RDS 最佳化寫入概觀

當您開啟 RDS Optimized Writes 時,當將資料排清為耐用的儲存體時,RDS適用於我的SQL資料庫的 只會寫入一次,而不需要雙寫入緩衝區。資料庫會繼續為可靠的資料庫交易提供ACID屬性保護,並提升效能。

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

在 RDS Optimized Writes 開啟的情況下,RDS對於我的SQL資料庫,在未使用雙寫入緩衝區的情況下,將資料排清至耐用儲存體時只會寫入一次。 RDS如果您在 RDS for MySQL 資料庫上執行大量寫入工作負載, Optimized Writes 非常有用。具有大量寫入工作負載的資料庫範例包括支援數位支付、金融交易和遊戲應用程式的資料庫。

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

您可以設定新的資料庫參數rds.optimized_writes,以控制RDS適用於 MySQL 資料庫的RDS最佳化寫入功能。在RDS適用於 MySQL 8.0 版和RDS適用於 MySQL 8.4 版的資料庫參數群組中存取此參數。請使用下列值設定參數:

  • AUTO – 如果資料庫支援,請開啟RDS最佳化寫入。如果資料庫不支援,請關閉 RDS Optimized Writes。此設定是預設值。

  • OFF – 關閉RDS最佳化寫入,即使資料庫支援它。

如果您有具有引擎版本、資料庫執行個體類別、and/or file system format that doesn't support RDS Optimized Writes, you can enable the feature by creating a blue/green部署的現有資料庫。如需詳細資訊,請參閱在現有資料庫上啟用RDS最佳化寫入

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

當 RDS Optimized Writes 關閉時,資料庫會使用 MySQL Doublewrite 緩衝區。

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

使用RDS最佳化寫入

當您使用RDS主控台 AWS CLI、 或 RDS 建立 RDS for MySQL 資料庫時,您可以開啟RDS最佳化寫入API。 RDS當下列兩種條件在建立資料庫期間套用時,最佳化寫入會自動開啟:

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

    • RDS My RDS SQL 8.0.30 版及更新版本支援最佳化寫入。如需RDS適用於 MySQL 版本的資訊,請參閱 MySQL on Amazon RDS 版本

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

      • db.m7i

      • db.m7g

      • db.m6g

      • DB.m6gd

      • db.m6i

      • db.m5

      • db.m5d

      • db.r7i

      • db.r7g

      • db.r6g

      • db.r6gd

      • db.r6i

      • db.r5

      • db.r5b

      • db.r5d

      • db.x2idn

      • db.x2iedn

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

      資料庫執行個體類別可用性會有所不同 AWS 區域。若要判斷特定 是否支援資料庫執行個體類別 AWS 區域,請參閱 在 中判斷資料庫執行個體類別支援 AWS 區域

      若要將資料庫升級至支援RDS最佳化寫入的資料庫執行個體類別,您可以建立藍/綠部署。如需詳細資訊,請參閱在現有資料庫上啟用RDS最佳化寫入

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

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

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

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

若要選擇支援 RDS Optimized Writes 的資料庫引擎版本,請篩選支援引擎版本的 RDS for MySQL 資料庫引擎版本,然後選擇版本。

針對引擎版本開啟 Amazon Optimized Writes 篩選條件的引擎選項區段。 RDS

執行個體組態區段中,篩選支援RDS最佳化寫入的資料庫執行個體類別,然後選擇資料庫執行個體類別。

開啟資料庫執行個體類別的 Amazon RDS Optimized Writes 篩選條件的執行個體組態區段。

進行這些選擇後,您可以選擇其他符合您需求的設定,並使用 主控台完成RDS為 MySQL 資料庫建立 。

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

範例 建立使用RDS最佳化寫入的資料庫執行個體

用於 Linux, macOS、 或 Unix:

aws rds create-db-instance \ --db-instance-identifier mydbinstance \ --engine mysql \ --engine-version 8.0.30 \ --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 mysql ^ --engine-version 8.0.30 ^ --db-instance-class db.r5b.large ^ --manage-master-user-password ^ --master-username admin ^ --allocated-storage 200

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

在現有資料庫上啟用RDS最佳化寫入

為了修改現有的 RDS 供我的SQL資料庫開啟RDS最佳化寫入,資料庫必須使用支援的資料庫引擎版本和資料庫執行個體類別建立。此外,資料庫必須在 RDS Optimized Writes 於 2022 年 11 月 27 日發行之後建立,因為所需的基礎檔案系統組態與發行之前建立的資料庫組態不相容。如果符合這些條件,您可以將 rds.optimized_writes 參數設定為 以開啟RDS最佳化寫入AUTO

如果您的資料庫未使用支援的引擎版本、執行個體類別或檔案系統組態建立,您可以使用RDSBlue/Green Deployments to migrate to a supported configuration. While creating the blue/green部署,請執行下列動作:

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

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

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

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

RDS 最佳化寫入的限制

當您從快照還原 RDS for MySQL 資料庫時,只有在符合下列所有條件時,才能開啟資料庫的RDS最佳化寫入:

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

  • 快照是從發行RDS最佳化寫入建立的資料庫建立的。

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

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