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

PolarDB:ヒントの使い方

最終更新日:Jun 04, 2024

このトピックでは、ヒントの構文とヒントの使用方法について説明します。

ヒントはSQL構文の補足であり、リレーショナルデータベースで重要な役割を果たします。 ヒントを使用すると、対応する構文を使用してSQL文の実行方法を選択できます。 これにより、SQL文の実行を最適化できます。 PolarDB-Xは特別なヒント構文を提供します。

構文

/* + TDDL: hint_command [hint_command ...]* /
    
/!+ TDDL: hint_command [hint_command ...]*/ 
説明 MySQLコマンドラインクライアントでは、PolarDB-Xヒントを /* + TDDL:hint_command * /の形式で含むSQLステートメントを実行する必要があります。 この場合、ログオンコマンドに-cパラメーターを追加します。 それ以外の場合、クライアントは、クライアントが実行のためにSQLステートメントをサーバーに送信する前に、カスタムPolarDB-Xヒントを削除します。 これは、ヒントがMySQLコメントの形式であるためです。 その結果、カスタムPolarDB-Xヒントは有効になりません。 詳細については、「mysql client options」をご参照ください。

# 各データベースシャードの物理テーブルの名前を照会します。
/* + TDDL:scan()*/SHOW TABLES;
   
# 読み取り専用ApsaraDB RDSインスタンスのDatabase Shard 0000にクエリをルーティングします。    
/* + TDDL: ノード (0) スレーブ ()*/SELECT * FROM t1;

# ワークロードタイプを分析処理 (AP) に設定します。
/* + TDDL:WORKLOAD=AP */SELECT * FROM t1; 

PolarDB-Xでは、SQL文で複数のヒントコマンドを含むヒントを使用できます。

SELECT /* + TDDL: ノード (0) スレーブ ()*/ ...;

PolarDB-Xには、複数のヒントコマンドを含むヒントの使用に次の制限があります。

# 単一のSQL文に複数のヒントを含めることはできません。
SELECT /* + TDDL:node(0)*/ /* + TDDL:slave()*/ ...;
    
# ヒントに重複するヒントコマンドを含めることはできません。 
SELECT /* + TDDL: ノード (0) ノード (1)*/ ...;