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

ApsaraDB RDS:ApsaraDB RDS for MySQLインスタンスでヒントを実行する

最終更新日:Jan 18, 2024

このトピックでは、読み書き分離ルーティングエンドポイントを使用して接続されているApsaraDB RDS for MySQLインスタンスでヒントを実行する方法について説明します。

制限事項

ヒントは、読み書き分離ルーティングエンドポイントを使用して接続されているRDSインスタンスでのみ実行できます。 詳細については、「読み書き分離の概要」をご参照ください。

Usage

  • MySQL CLIを使用してRDSインスタンスに接続する場合は、実行するヒントに -cオプションを追加する必要があります。 それ以外の場合、MySQL CLIはヒントを除外します。

  • /* FORCE_MASTER */ ヒントを使用して、データがプライマリRDSインスタンスから照会されることを指定できます。 /* FORCE_SLAVE */ ヒントを使用して、セカンダリRDSインスタンスからデータを照会するように指定することもできます。

    説明
    • ヒントは、一貫性やトランザクションの制限の対象にはなりません。 したがって、ヒントは最も高いルート優先度を有する。 ヒントを実行する前に、ヒントがワークロードに適しているかどうかを評価する必要があります。

    • ヒントには、環境変数の再構成に使用するステートメントを含めることはできません。 たとえば、/* FORCE_SLAVE */ set names utf8; ステートメントは使用できません。 これらのステートメントをヒントに含めると、ワークロードでエラーが発生する可能性があります。

    • 読み取り専用RDSインスタンスの重みを0に設定し、ヒントを使用してリクエストを読み取り専用RDSインスタンスに強制的に転送すると、クライアントは読み取り専用RDSインスタンスから切断されます。

  • /* force_node='<Instance ID>' */ コマンドを実行して、指定したRDSインスタンスのデータを照会できます。 たとえば、/* force_node='rr-bpxxxxx' */ show processlist; を指定した場合、SHOW PROCESSLISTステートメントはrr-bpxxxxxという名前のRDSインスタンスでのみ実行されます。 RDSインスタンスに障害がある場合、強制ヒントサーバーノードが見つかりません。確認してください。 エラーメッセージが返されます。

  • /* force_proxy_internal */set force_node = '<インスタンスID>'; を使用して、指定されたRDSインスタンスのデータを常にクエリできます。 たとえば、/* force_proxy_internal */set force_node = 'rr-bpxxxxx'; を実行すると、それ以降のすべてのコマンドはrr-bpxxxxxという名前のRDSインスタンスにルーティングされます。 RDSインスタンスに障害がある場合、set forceノード 'rr-bpxxxxx' が見つかりません。確認してください。 エラーメッセージが返されます。

    説明

    ほとんどの場合、/* force_proxy_internal */ 構文は使用しないことを推奨します。 構文は、後続のすべてのリクエストが指定されたRDSインスタンスに転送されることを指定します。 その結果、読み書き分離機能は無効になる。