title | summary |
---|---|
CREATE PLACEMENT POLICY |
TiDB 数据库中 CREATE PLACEMENT POLICY 的使用概况。 |
CREATE PLACEMENT POLICY
用于创建命名的放置策略,随后可以将该策略分配给表、分区或数据库。
CreatePolicyStmt ::=
"CREATE" "PLACEMENT" "POLICY" IfNotExists PolicyName PlacementOptionList
PolicyName ::=
Identifier
PlacementOptionList ::=
PlacementOption
| PlacementOptionList PlacementOption
| PlacementOptionList ',' PlacementOption
PlacementOption ::=
CommonPlacementOption
| SugarPlacementOption
| AdvancedPlacementOption
CommonPlacementOption ::=
"FOLLOWERS" EqOpt LengthNum
SugarPlacementOption ::=
"PRIMARY_REGION" EqOpt stringLit
| "REGIONS" EqOpt stringLit
| "SCHEDULE" EqOpt stringLit
AdvancedPlacementOption ::=
"LEARNERS" EqOpt LengthNum
| "CONSTRAINTS" EqOpt stringLit
| "LEADER_CONSTRAINTS" EqOpt stringLit
| "FOLLOWER_CONSTRAINTS" EqOpt stringLit
| "LEARNER_CONSTRAINTS" EqOpt stringLit
注意:
如要查看所在集群中可用的区域,见
SHOW PLACEMENT LABELS
。如果未看到任何可用的区域,此 TiKV 集群在部署时可能未正确设置标签 (label)。
{{< copyable "sql" >}}
CREATE PLACEMENT POLICY p1 PRIMARY_REGION="us-east-1" REGIONS="us-east-1,us-west-1" FOLLOWERS=4;
CREATE TABLE t1 (a INT) PLACEMENT POLICY=p1;
SHOW CREATE PLACEMENT POLICY p1;
Query OK, 0 rows affected (0.08 sec)
Query OK, 0 rows affected (0.10 sec)
+--------+---------------------------------------------------------------------------------------------------+
| Policy | Create Policy |
+--------+---------------------------------------------------------------------------------------------------+
| p1 | CREATE PLACEMENT POLICY `p1` PRIMARY_REGION="us-east-1" REGIONS="us-east-1,us-west-1" FOLLOWERS=4 |
+--------+---------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
该语句是 TiDB 对 MySQL 语法的扩展。