すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:トランザクション分割機能の使用

最終更新日:Jan 18, 2024

プライマリApsaraDB RDS for MySQLインスタンスのデータベースプロキシ機能は、トランザクション分割をサポートし、読み取り /書き込みの一貫性を確保し、トランザクションの最初の書き込み操作の前に読み取り要求を読み取り専用RDSインスタンスに転送します。 これにより、プライマリRDSインスタンスの負荷が軽減されます。 このトピックでは、トランザクション分割を有効および無効にする方法について説明します。

前提条件

データベースプロキシ機能が有効になっています。 詳細については、「データベースプロキシ機能の有効化」をご参照ください。

背景情報

ApsaraDB RDS for MySQLのデータベースプロキシ機能は、トランザクション内のすべてのリクエストをプライマリRDSインスタンスに自動的に送信し、トランザクションの正確性を確保します。 場合によっては、すべての要求は、自動的にコミットされないトランザクションにカプセル化されます。 set autocomit=0; ステートメントを実行して、自動コミットモードを無効にします。 その結果、プライマリRDSインスタンスの負荷が高くなります。

image.png

上記の問題を解決するには、データベースプロキシ機能のトランザクション分割機能を使用します。 トランザクション分割機能は、アプリケーションのコードや構成を変更することなく、トランザクション内の読み取り要求をプライマリRDSインスタンスから読み取り専用RDSインスタンスにオフロードします。 これにより、プライマリRDSインスタンスの安定性が向上します。

トランザクション分割が有効になった後、デフォルトの分離レベルREAD COMMITTEDが使用され、トランザクションの自動コミットモードが無効になっている場合、システムは書き込み操作に対してのみトランザクションを開始します。 さらに、トランザクションが開始される前に、システムはロードバランサーを使用してすべての読み取り要求を読み取り専用RDSインスタンスにルーティングします。

説明
  • データベースプロキシ機能のトランザクション分割は自動的に有効になります。

  • 明示的なトランザクションは分割できません。 これらの明示的なトランザクションは、BEGINまたはSTARTステートメントを実行することによって開始されるトランザクションを含む。

  • トランザクション分割を有効にすると、グローバルな一貫性を確保できません。 データベースプロキシ機能を有効にする前に、トランザクション分割がワークロードに適していることを確認してください。

事务拆分

手順

ビジネス要件に基づいて、トランザクション分割機能を有効または無効にできます。

  1. [インスタンス] ページに移動します。 上部のナビゲーションバーで、RDSインスタンスが存在するリージョンを選択します。 次に、RDSインスタンスを見つけ、インスタンスのIDをクリックします。
  2. 左側のナビゲーションウィンドウで、データベースプロキシ をクリックします。

  3. [接続情報] セクションで、変更するデータベースプロキシエンドポイントを見つけ、[操作] 列の [設定の変更] をクリックします。

  4. 表示されるダイアログボックスで、トランザクション分割の横にある [有効化] または [無効化] をクリックします。

    説明

    トランザクション分割を有効または無効にすると、新しい設定は新しい接続にのみ適用されます。

関連する操作

操作

説明

DescribeDBProxy

データベースプロキシの詳細を照会します。

DescribeDBProxyEndpoint

データベースプロキシエンドポイントに関する情報を照会します。

ModifyDBProxyEndpoint

データベースプロキシエンドポイントの設定を変更します。