📣
TiDB Cloud Essential はパブリックプレビュー中です。このページは自動翻訳されたものです。原文はこちらからご覧ください。

DISTRIBUTE TABLEバージョン8.5.4の新機能

DISTRIBUTE TABLE文は、指定されたテーブルのリージョンを再配分および再スケジュールし、テーブルレベルでバランスの取れた配分を実現します。この文を実行することで、リージョンが少数のTiFlashノードまたは TiKV ノードに集中するのを防ぎ、テーブル内のリージョンの不均一な配分の問題に対処できます。

概要

DistributeTableStmt
DISTRIBUTETABLETableNamePartitionNameListOptRULEEqOrAssignmentEqIdentifierENGINEEqOrAssignmentEqIdentifierTIMEOUTEqOrAssignmentEqIdentifier
TableName
SchemaName.Identifier
PartitionNameList
PARTITION(PartitionName,)

パラメータの説明

DISTRIBUTE TABLEステートメントを使用してテーブル内のリージョンを再配分する場合、バランスの取れた配分のためにstorageエンジン ( TiFlashや TiKV など) とさまざまなRaftロール ( Leader、 Learner、 Voter など) を指定できます。

  • RULE : どのRaftロールのリージョンをバランス調整およびスケジュールするかを指定します。オプションの値は"leader-scatter""peer-scatter""learner-scatter"です。
  • ENGINE :storageエンジンを指定します。オプションの値は"tikv""tiflash"です。
  • TIMEOUT : スキャッタ処理のタイムアウト制限を指定します。PDがこの時間内にスキャッタ処理を完了しない場合、スキャッタタスクは自動的に終了します。このパラメータが指定されていない場合、デフォルト値は"30m"です。

t1のリーダーの地域をTiKVに再分配します。

CREATE TABLE t1 (a INT); ... DISTRIBUTE TABLE t1 RULE = "leader-scatter" ENGINE = "tikv" TIMEOUT = "1h";
+--------+ | JOB_ID | +--------+ | 100 | +--------+

t2の学習者の領域をTiFlashに再分配します。

CREATE TABLE t2 (a INT); ... DISTRIBUTE TABLE t2 RULE = "learner-scatter" ENGINE = "tiflash";
+--------+ | JOB_ID | +--------+ | 101 | +--------+

テーブルt3p1p2のパーティション内のピアのリージョンを TiKV で再配布します。

CREATE TABLE t3 ( a INT, b INT, INDEX idx(b)) PARTITION BY RANGE( a ) ( PARTITION p1 VALUES LESS THAN (10000), PARTITION p2 VALUES LESS THAN (20000), PARTITION p3 VALUES LESS THAN (MAXVALUE) ); ... DISTRIBUTE TABLE t3 PARTITION (p1, p2) RULE = "peer-scatter" ENGINE = "tikv";
+--------+ | JOB_ID | +--------+ | 102 | +--------+

Learnerの領域をTiFlash上のテーブルt4p1番目とp2パーティションに再分配します。

CREATE TABLE t4 ( a INT, b INT, INDEX idx(b)) PARTITION BY RANGE( a ) ( PARTITION p1 VALUES LESS THAN (10000), PARTITION p2 VALUES LESS THAN (20000), PARTITION p3 VALUES LESS THAN (MAXVALUE) ); ... DISTRIBUTE TABLE t4 PARTITION (p1, p2) RULE = "learner-scatter" ENGINE="tiflash";
+--------+ | JOB_ID | +--------+ | 103 | +--------+

注記

テーブルのリージョンを再配分するリージョンDISTRIBUTE TABLEを実行すると、PD ホットスポット スケジューラの影響を受ける可能性があります。再配分後、このテーブルのリージョン配分は時間の経過とともに再び不均衡になる可能性があります。

MySQLの互換性

このステートメントは、MySQL 構文に対する TiDB 拡張です。

参照

このページは役に立ちましたか?