tencent cloud

TDSQL-C for MySQL

ヒント構文の使用

Download
フォーカスモード
フォントサイズ
最終更新日: 2025-12-30 16:40:06
本稿では、データベースプロキシ上でヒント構文を使用する方法について説明します。
ヒント構文を使用すると、SQLリクエストを指定したインスタンスで強制実行できます。ヒントのルーティング優先度は最優先であり、整合性やトランザクションの制約を受けません。使用前に、業務シナリオで本当に必要かどうかを適切に評価してください。
注意:
TDSQL-C for MySQLのコマンドラインを使用して接続し、ヒントステートメントを適用する場合、コマンドに -c オプションを追加する必要があります。そうしないと、ヒントはコマンドラインツールによってフィルタリングされます。
例えば(内部ネットワーク経由で接続を確立する場合):コマンドは mysql -h hostname -u username -p -c となります。
データベースプロキシを使用してヒント構文を適用する場合、データベースプロキシのバージョンが1.3.3以上の場合、prepareがサポートされます。
現在、4種類のヒントをサポートしています:
読み書きインスタンスでの実行を指定する:
-- ヒントステートメント
/* to master */
/*FORCE_MASTER*/
-- サンプル
-- 強制的に読み書きインスタンス上でクエリを実行します。
SELECT /* to master */ * FROM users WHERE user_id = 1;

-- 強制的に読み書きインスタンス上で更新を実行します。
UPDATE /* FORCE_MASTER */ orders SET status = 'shipped' WHERE order_id = 1001;
読み取り専用インスタンスでの実行を指定する:
-- ヒントステートメント
/* to slave */
/*FORCE_SLAVE*/
-- サンプル
-- 強制的に読み取り専用インスタンスでクエリを実行します。
SELECT /* to slave */ * FROM products WHERE category = 'electronics';

-- 強制的に読み取り専用インスタンスでカウントクエリを実行する
SELECT /* FORCE_SLAVE */ COUNT(*) FROM transactions WHERE status = 'completed';
読み取り専用分析エンジンでの実行を指定する:
注意:
データベースプロキシのバージョンが1.4.4以上の場合のみ、この実行方法をサポートします。複数の読み取り専用分析エンジンが存在する場合、重み付けルールに基づいてCLBが行われます。
-- 強制的に読み取り専用分析エンジンでクエリを実行する
SELECT /* to ap */ * FROM products WHERE category = 'electronics';
具体的なインスタンスを指定して実行する:
-- ヒントステートメント
/* to server server_name */
-- サンプル
-- 強制的に特定のインスタンス test_ro_1 でクエリを実行する
SELECT /* to server test_ro_1 */ * FROM inventory WHERE product_id = 2002;
説明:
上記のステートメントにおけるserver_nameはインスタンスIDであり、クラスタ詳細ページ右側のインスタンス情報(タブビューモード)で対象インスタンスのIDを取得できます。下図の通りです。


ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック