title: SHOW PLACEMENT FOR summary: TiDB 数据库中 SHOW PLACEMENT FOR 的使用概况。

SHOW PLACEMENT FOR

警告:

Placement Rules in SQL 是 TiDB 在 v5.3.0 中引入的实验特性,其语法在 GA 前可能会发生变化,还可能存在 bug。如果你知晓潜在的风险,可通过执行 SET GLOBAL tidb_enable_alter_placement = 1; 来开启该实验特性。

SHOW PLACEMENT FOR 用于汇总直接放置 (direct placement) 和放置策略 (placement policy) 中所有的放置选项,并为特定表、数据库或分区以规范形式呈现这些选项信息。

语法图

  1. ShowStmt ::=
  2. "PLACEMENT" "FOR" ShowPlacementTarget
  3. ShowPlacementTarget ::=
  4. DatabaseSym DBName
  5. | "TABLE" TableName
  6. | "TABLE" TableName "PARTITION" Identifier

示例

  1. CREATE PLACEMENT POLICY p1 PRIMARY_REGION="us-east-1" REGIONS="us-east-1,us-west-1" FOLLOWERS=4;
  2. use test;
  3. ALTER DATABASE test PLACEMENT POLICY=p1;
  4. CREATE TABLE t1 (a INT);
  5. CREATE TABLE t2 (a INT) PRIMARY_REGION="us-east-1" REGIONS="us-east-1,us-west-1" FOLLOWERS=4;
  6. SHOW PLACEMENT FOR DATABASE test;
  7. SHOW PLACEMENT FOR TABLE t1;
  8. SHOW CREATE TABLE t1\G
  9. SHOW PLACEMENT FOR TABLE t2;
  10. CREATE TABLE t3 (a INT) PARTITION BY RANGE (a) (PARTITION p1 VALUES LESS THAN (10), PARTITION p2 VALUES LESS THAN (20) FOLLOWERS=4);
  11. SHOW PLACEMENT FOR TABLE t3 PARTITION p1;
  12. SHOW PLACEMENT FOR TABLE t3 PARTITION p2;
  1. Query OK, 0 rows affected (0.02 sec)
  2. Query OK, 0 rows affected (0.00 sec)
  3. Query OK, 0 rows affected (0.00 sec)
  4. Query OK, 0 rows affected (0.01 sec)
  5. +---------------+----------------------------------------------------------------------+------------------+
  6. | Target | Placement | Scheduling_State |
  7. +---------------+----------------------------------------------------------------------+------------------+
  8. | DATABASE test | PRIMARY_REGION="us-east-1" REGIONS="us-east-1,us-west-1" FOLLOWERS=4 | INPROGRESS |
  9. +---------------+----------------------------------------------------------------------+------------------+
  10. 1 row in set (0.00 sec)
  11. +---------------+-------------+------------------+
  12. | Target | Placement | Scheduling_State |
  13. +---------------+-------------+------------------+
  14. | TABLE test.t1 | FOLLOWERS=4 | INPROGRESS |
  15. +---------------+-------------+------------------+
  16. 1 row in set (0.00 sec)
  17. *************************** 1. row ***************************
  18. Table: t1
  19. Create Table: CREATE TABLE `t1` (
  20. `a` int(11) DEFAULT NULL
  21. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin /*T![placement] PLACEMENT POLICY=`p1` */
  22. 1 row in set (0.00 sec)
  23. +---------------+----------------------------------------------------------------------+------------------+
  24. | Target | Placement | Scheduling_State |
  25. +---------------+----------------------------------------------------------------------+------------------+
  26. | TABLE test.t2 | PRIMARY_REGION="us-east-1" REGIONS="us-east-1,us-west-1" FOLLOWERS=4 | INPROGRESS |
  27. +---------------+----------------------------------------------------------------------+------------------+
  28. 1 row in set (0.00 sec)
  29. Query OK, 0 rows affected (0.14 sec)
  30. +----------------------------+-----------------------------------------------------------------------+------------------+
  31. | Target | Placement | Scheduling_State |
  32. +----------------------------+-----------------------------------------------------------------------+------------------+
  33. | TABLE test.t3 PARTITION p1 | PRIMARY_REGION="us-east-1" REGIONS="us-east-1,,us-west-1" FOLLOWERS=4 | INPROGRESS |
  34. +----------------------------+-----------------------------------------------------------------------+------------------+
  35. 1 row in set (0.00 sec)
  36. +----------------------------+-------------+------------------+
  37. | Target | Placement | Scheduling_State |
  38. +----------------------------+-------------+------------------+
  39. | TABLE test.t3 PARTITION p2 | FOLLOWERS=4 | INPROGRESS |
  40. +----------------------------+-------------+------------------+
  41. 1 row in set (0.00 sec)

MySQL 兼容性

该语句是 TiDB 对 MySQL 语法的扩展。

另请参阅