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

PolarDB:PARTITION_HINT の設定

最終更新日:Mar 29, 2026

現在のセッション内で、以降の SQL ステートメントをデータノード上の特定のシャードにルーティングし、デフォルトの自動ルーティングロジックをバイパスします。

構文

SET PARTITION_HINT = [PARTITION_NAME | GROUP_NAME | GROUP_NAME:TABLE_INDEX]

ヒントをクリアしてすべてのシャードに対するクエリを再開するには、空文字列を指定します:

SET PARTITION_HINT = '';

パラメーター

パラメーター説明
PARTITION_NAMEAUTO モードのデータベースにおける対象パーティションの partition_name です。
GROUP_NAMEDRDS モードのデータベースにおける対象グループの GROUP_NAME です。
GROUP_NAME:TABLE_INDEXDRDS モードのデータベースにおいて、1 つのグループに複数のテーブルが含まれる場合の、グループ名とそのグループ内におけるテーブルのゼロベースインデックスです。

注意事項

  • バージョン要件: PolarDB-X 5.4.16-16773973 クラスターのみでサポートされます。

  • モード対応: AUTO モードおよび DRDS モードのデータベースでサポートされます。

ユースケース

  • データ分散のデバッグ: 特定のシャードに対して直接クエリを実行し、そのシャード上に格納されている行を確認します。

  • シャード単位のパフォーマンス分離: 負荷の不均衡を診断するために、1 つのシャードずつ順次クエリを実行します。

  • シャードレベルの結果検証: 書き込み後に、特定のパーティションまたはグループに期待通りのデータが格納されていることを確認します。

以下の例では、3 つのシャードに分散されたテーブル multi_db_single_tbl を使用します。各シャードには 1 行のデータが格納されており、それぞれ (100001, 'a')(100002, 'b')(100003, 'c') です。

単一シャードへのクエリ

ヒントを設定して、PARTITION_HINT_TEST_DRDS_000003_GROUP(テーブルインデックス 0)にルーティングします:

SET PARTITION_HINT = 'PARTITION_HINT_TEST_DRDS_000003_GROUP:0';
Query OK, 0 rows affected (0.00 sec)

クエリを実行します。このシャード上に格納されている行のみが返されます:

SELECT * FROM multi_db_single_tbl;
+--------+------+
| id     | name |
+--------+------+
| 100003 | c    |
+--------+------+
1 row in set (0.02 sec)

全シャードへのクエリ

すべてのシャードに対するデフォルトのルーティングを復元するには、ヒントをクリアします:

SET PARTITION_HINT = '';
Query OK, 0 rows affected (0.00 sec)

同一のクエリを実行します。3 行すべてが返されます:

SELECT * FROM multi_db_single_tbl;
+--------+------+
| id     | name |
+--------+------+
| 100003 | c    |
+--------+------+
| 100002 | b    |
+--------+------+
| 100001 | a    |
+--------+------+
3 rows in set (0.04 sec)