PolarDB-X 1.0-用户指南-自定义控制指令-查看规则和节点拓扑类语句

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: 本文汇总了PolarDB-X支持的查看规则和节点拓扑类的语句。

本文汇总了PolarDB-X支持的查看规则和节点拓扑类的语句。

1. SHOW RULE [FROM tablename]

使用说明:

  • show rule:查看数据库下每一个逻辑表的拆分情况;
  • show rule from tablename:查看数据库下指定逻辑表的拆分情况。

重要列详解:

  • BROADCAST:是否为广播表(0:否,1:是);
  • DB_PARTITION_KEY:分库的拆分键,没有分库的话,值为空;
  • DB_PARTITION_POLICY:分库的拆分策略,取值包括哈希或 YYYYMM、YYYYDD、YYYYWEEK 等日期策略;
  • DB_PARTITION_COUNT:分库数;
  • TB_PARTITION_KEY:分表的拆分键,没有分表的话,值为空;
  • TB_PARTITION_POLICY:分表的拆分策略,取值包括哈希或 MM、DD、MMDD、WEEK 等日期策略;
  • TB_PARTITION_COUNT:分表数。


  1. mysql> show rule;
  2. +------+--------------+-----------+------------------+---------------------+--------------------+------------------+---------------------+--------------------+
  3. | ID   | TABLE_NAME   | BROADCAST | DB_PARTITION_KEY | DB_PARTITION_POLICY | DB_PARTITION_COUNT | TB_PARTITION_KEY | TB_PARTITION_POLICY | TB_PARTITION_COUNT |
  4. +------+--------------+-----------+------------------+---------------------+--------------------+------------------+---------------------+--------------------+
  5. |    0| dept_manager |         0|                  | NULL                |1                  |                  | NULL                |1                  |
  6. |    1| emp          |         0| emp_no           | hash                |8                  | id               | hash                |2                  |
  7. |    2| example      |         0| shard_key        | hash                |8                  |                  | NULL                |1                  |
  8. +------+--------------+-----------+------------------+---------------------+--------------------+------------------+---------------------+--------------------+
  9. 3 rows inset(0.01 sec)

2. SHOW FULL RULE [FROM tablename]

查看数据库下逻辑表的拆分规则,比 SHOW RULE 指令展示的信息更加详细。

重要列详解:

  • BROADCAST:是否为广播表(0:否,1:是);
  • JOIN_GROUP:保留字段,暂时无意义。
  • ALLOW_FULL_TABLE_SCAN:分库分表在没有指定分表键值的情况下是否允许查询数据,如果配置为 true,此时需要扫描每一个物理表来查找出符合条件的数据,简称为全表扫描;
  • DB_NAME_PATTERN:DB_NAME_PATTERN 中 {} 之间的 0 为占位符,执行 SQL 时会被 DB_RULES_STR 计算出的值替代,并保持位数。比如,DB_NAME_PATTERN 的值为 SEQ_{0000}_RDS,DB_RULES_STR 的值为 [1,2,3,4],则会产生4个 DB_NAME,分别为 SEQ_0001_RDS、SEQ_0002_RDS、SEQ_0003_RDS、SEQ_0004_RDS;
  • DB_RULES_STR:具体的分库规则;
  • TB_NAME_PATTERN:TB_NAME_PATTERN 中 {} 之间的 0 为占位符,执行 SQL 时会被 TB_RULES_STR 计算出的值替代,并保持位数。比如,TB_NAME_PATTERN 的值为 table_{00},TB_RULES_STR 的值为 [1,2,3,4,5,6,7,8],则会产生8张表,分别为 table_01、table_02、table_03、table_04、table_05、table_06、table_07、table_08;
  • TB_RULES_STR:分表规则;
  • PARTITION_KEYS:分库和分表键集合,对于既分库又分表的情形,分库键在前,分表键在后;
  • DEFAULT_DB_INDEX:单库单表存放的分库。


  1. mysql> show full rule;
  2. +------+--------------+-----------+------------+-----------------------+----------------------------------------------------+-----------------------------------------------------+-----------------+------------------------------------+----------------+--------------------------------------------------+
  3. | ID   | TABLE_NAME   | BROADCAST | JOIN_GROUP | ALLOW_FULL_TABLE_SCAN | DB_NAME_PATTERN                                    | DB_RULES_STR                                        | TB_NAME_PATTERN | TB_RULES_STR                       | PARTITION_KEYS | DEFAULT_DB_INDEX                                 |
  4. +------+--------------+-----------+------------+-----------------------+----------------------------------------------------+-----------------------------------------------------+-----------------+------------------------------------+----------------+--------------------------------------------------+
  5. |    0| dept_manager |         0| NULL       |                     0| SEQ_TEST_*************RGKKSEQ_TEST_****_0000_RDS   | NULL                                                | dept_manager    | NULL                               | NULL           | SEQ_TEST_*************RGKKSEQ_TEST_****_0000_RDS |
  6. |    1| emp          |         0| NULL       |                     1| SEQ_TEST_148*************SEQ_TEST_****_{0000}_RDS |((#emp_no,1,8#).longValue().abs() % 8)              | emp_{0}         | ((#id,1,2#).longValue().abs() % 2) | emp_no      id | SEQ_TEST_*************RGKKSEQ_TEST_****_0000_RDS |
  7. |    2| example      |         0| NULL       |                     1| SEQ_TEST_*************RGKKSEQ_TEST_****_{0000}_RDS |((#shard_key,1,8#).longValue().abs() % 8).intdiv(1) | example         | NULL                               | shard_key      | SEQ_TEST_*************RGKKSEQ_TEST_****_0000_RDS |
  8. +------+--------------+-----------+------------+-----------------------+----------------------------------------------------+-----------------------------------------------------+-----------------+------------------------------------+----------------+--------------------------------------------------+
  9. 3 rows inset(0.01 sec)

3. SHOW TOPOLOGY FROM tablename

查看指定逻辑表的拓扑分布,展示该逻辑表保存在哪些分库中,每个分库下包含哪些分表。


  1. mysql> show topology from emp;
  2. +------+--------------------------------------------------+------------+
  3. | ID   | GROUP_NAME                                       | TABLE_NAME |
  4. +------+--------------------------------------------------+------------+
  5. |    0| SEQ_TEST_*************RGKKSEQ_TEST_****_0000_RDS | emp_0      |
  6. |    1| SEQ_TEST_*************RGKKSEQ_TEST_****_0000_RDS | emp_1      |
  7. |    2| SEQ_TEST_*************RGKKSEQ_TEST_****_0001_RDS | emp_0      |
  8. |    3| SEQ_TEST_*************RGKKSEQ_TEST_****_0001_RDS | emp_1      |
  9. |    4| SEQ_TEST_*************RGKKSEQ_TEST_****_0002_RDS | emp_0      |
  10. |    5| SEQ_TEST_*************RGKKSEQ_TEST_****_0002_RDS | emp_1      |
  11. |    6| SEQ_TEST_*************RGKKSEQ_TEST_****_0003_RDS | emp_0      |
  12. |    7| SEQ_TEST_*************RGKKSEQ_TEST_****_0003_RDS | emp_1      |
  13. |    8| SEQ_TEST_*************RGKKSEQ_TEST_****_0004_RDS | emp_0      |
  14. |    9| SEQ_TEST_*************RGKKSEQ_TEST_****_0004_RDS | emp_1      |
  15. |   10| SEQ_TEST_*************RGKKSEQ_TEST_****_0005_RDS | emp_0      |
  16. |   11| SEQ_TEST_*************RGKKSEQ_TEST_****_0005_RDS | emp_1      |
  17. |   12| SEQ_TEST_*************RGKKSEQ_TEST_****_0006_RDS | emp_0      |
  18. |   13| SEQ_TEST_*************RGKKSEQ_TEST_****_0006_RDS | emp_1      |
  19. |   14| SEQ_TEST_*************RGKKSEQ_TEST_****_0007_RDS | emp_0      |
  20. |   15| SEQ_TEST_*************RGKKSEQ_TEST_****_0007_RDS | emp_1      |
  21. +------+--------------------------------------------------+------------+
  22. 16 rows inset(0.01 sec)

4. SHOW PARTITIONS FROM tablename

查看分库分表键集合,分库键和分表键之间用逗号分割。如果最终结果有两个值,说明是既分库又分表的情形,第一个是分库键,第二个是分表键。如果结果只有一个值,说明是分库不分表的情形,该值是分库键。


  1. mysql> show partitions from emp;        
  2. +-----------+
  3. | KEYS      |
  4. +-----------+
  5. | emp_no,id |
  6. +-----------+
  7. 1 row inset(0.00 sec)

5. SHOW BROADCASTS

查看广播表列表。


  1. mysql> show broadcasts;
  2. +------+------------+
  3. | ID   | TABLE_NAME |
  4. +------+------------+
  5. |    0|***2       |
  6. |    1|***_tbl    |
  7. +------+------------+
  8. 2 rows inset(0.01 sec)

6. SHOW DATASOURCES

查看底层存储信息,包含数据库名、数据库分组名、连接信息、用户名、底层存储类型、读写权重、连接池信息等。

重要列详解:

  • SCHEMA:数据库名;
  • GROUP:数据库分组名。分组的目标是管理多组数据完全相同的数据库,比如通过 RDS(MySQL)进行数据复制后的主备数据库。主要用来解决读写分离、主备切换的问题;
  • URL:底层 RDS(MySQL)的连接信息;
  • TYPE:底层存储类型,目前只支持 RDS(MySQL);
  • READ_WEIGHT:读权重。在主实例的读压力比较大的时候,可以通过 PolarDB-X 读写分离功能将读流量进行分流,减轻 RDS 主实例的压力。PolarDB-X 会自动识别读写流量,引导写流量进入 RDS 主实例,读流量则按配置的权重流向所有 RDS 实例;
  • WRITE_WEIGHT:写权重。解释见上。


  1. mysql> show datasources;
  2. +------+----------------------------+------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------+-----------+-------+------+------+------+--------------+----------+--------------+---------------+----------------------------------------------+-------------+--------------+
  3. | ID   | SCHEMA                     | NAME                                           | GROUP                                            | URL                                                                              | USER      | TYPE  | INIT | MIN  | MAX  | IDLE_TIMEOUT | MAX_WAIT | ACTIVE_COUNT | POOLING_COUNT | ATOM                                         | READ_WEIGHT | WRITE_WEIGHT |
  4. +------+----------------------------+------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------+-----------+-------+------+------+------+--------------+----------+--------------+---------------+----------------------------------------------+-------------+--------------+
  5. |    0| seq_test_148*************| rds*****************_seq_test_****_0000_****_1 | SEQ_TEST_*************RGKKSEQ_TEST_****_0000_RDS | jdbc:mysql://rds*****************.mysql.rds.aliyuncs.com:3306/seq_test_****_0000 | ********0 | mysql | 0    | 24   | 72   | 15           | 5000     | 0            | 1             | rds*****************_seq_test_****_0000_**** | 10          | 10           |
  6. |    1| seq_test_148*************| rds*****************_seq_test_****_****_****_2| SEQ_TEST_*************RGKKSEQ_TEST_****_0001_RDS | jdbc:mysql://rds*****************.mysql.rds.aliyuncs.com:3306/seq_test_****_0001 | ********0 | mysql | 0    | 24   | 72   | 15           | 5000     | 0            | 1             | rds*****************_seq_test_****_0001_**** | 10          | 10           |
  7. |    2| seq_test_148*************| rds*****************_seq_test_****_0002_****_3 | SEQ_TEST_*************RGKKSEQ_TEST_****_0002_RDS | jdbc:mysql://rds*****************.mysql.rds.aliyuncs.com:3306/seq_test_****_0002 | ********0 | mysql | 0    | 24   | 72   | 15           | 5000     | 0            | 1             | rds*****************_seq_test_****_0002_**** | 10          | 10           |
  8. |    3| seq_test_148*************| rds*****************_seq_test_****_0003_****_4 | SEQ_TEST_*************RGKKSEQ_TEST_****_0003_RDS | jdbc:mysql://rds*****************.mysql.rds.aliyuncs.com:3306/seq_test_****_0003 | ********0 | mysql | 0    | 24   | 72   | 15           | 5000     | 0            | 1             | rds*****************_seq_test_****_0003_**** | 10          | 10           |
  9. |    4| seq_test_148*************| rds*****************_seq_test_****_0004_****_5 | SEQ_TEST_*************RGKKSEQ_TEST_****_0004_RDS | jdbc:mysql://rds*****************.mysql.rds.aliyuncs.com:3306/seq_test_****_0004 | ********0 | mysql | 0    | 24   | 72   | 15           | 5000     | 0            | 1             | rds*****************_seq_test_****_0004_**** | 10          | 10           |
  10. |    5| seq_test_148*************| rds*****************_seq_test_****_0005_****_6 | SEQ_TEST_*************RGKKSEQ_TEST_****_0005_RDS | jdbc:mysql://rds*****************.mysql.rds.aliyuncs.com:3306/seq_test_****_0005 | ********0 | mysql | 0    | 24   | 72   | 15           | 5000     | 0            | 1             | rds*****************_seq_test_****_0005_**** | 10          | 10           |
  11. |    6| seq_test_148*************| rds*****************_seq_test_****_0006_****_7 | SEQ_TEST_*************RGKKSEQ_TEST_****_0006_RDS | jdbc:mysql://rds*****************.mysql.rds.aliyuncs.com:3306/seq_test_****_0006 | ********0 | mysql | 0    | 24   | 72   | 15           | 5000     | 0            | 1             | rds*****************
  12. _seq_test_****_0006_****|10          |10           |
  13. |    7| seq_test_148*************| rds*****************_seq_test_****_0007_****_8 | SEQ_TEST_*************RGKKSEQ_TEST_****_0007_RDS | jdbc:mysql://rds*****************.mysql.rds.aliyuncs.com:3306/seq_test_****_0007 | ********0 | mysql | 0    | 24   | 72   | 15           | 5000     | 0            | 1             | rds*****************_seq_test_****_0007_**** | 10          | 10           |
  14. +------+----------------------------+------------------------------------------------+--------------------------------------------------+----------------------------------------------------------------------------------+-----------+-------+------+------+------+--------------+----------+--------------+---------------+----------------------------------------------+-------------+--------------+
  15. 8 rows inset(0.01 sec)

7. SHOW NODE

查看物理库的读写次数(历史累计数据)、读写权重(历史累计数据)。

重要列详解:

  • MASTER_READ_COUNT:RDS 主实例处理的只读查询次数(历史累计数据);
  • SLAVE_READ_COUNT:RDS 备实例处理的只读查询次数(历史累计数据);
  • MASTER_READ_PERCENT:RDS 主实例处理的只读查询占比(注意该列显示的是累计的实际数据占比,并不是用户配置的百分比);
  • SLAVE_READ_PERCENT:RDS 备实例处理的只读查询占比(注意该列显示的是累计的实际数据占比,并不是用户配置的百分比)。

注意:

  • 事务中的只读查询会被发送到 RDS 主实例;
  • 由于MASTER_READ_PERCENTSLAVE_READ_PERCENT这两列代表的是历史累计数据,更改读写权重的配比后,这几个数值并不能立即反应最新的读写权重配比,需累计一段比较长的时间才行。


  1. mysql> show node;
  2. +------+--------------------------------------------------+-------------------+------------------+---------------------+--------------------+
  3. | ID   | NAME                                             | MASTER_READ_COUNT | SLAVE_READ_COUNT | MASTER_READ_PERCENT | SLAVE_READ_PERCENT |
  4. +------+--------------------------------------------------+-------------------+------------------+---------------------+--------------------+
  5. |0    | SEQ_TEST_*************RGKKSEQ_TEST_****_0000_RDS |                12|                0|100%                |0%                 |
  6. |1    | SEQ_TEST_*************RGKKSEQ_TEST_****_0001_RDS |                 0|                0|0%                  |0%                 |
  7. |2    | SEQ_TEST_*************RGKKSEQ_TEST_****_0002_RDS |                 0|                0|0%                  |0%                 |
  8. |3    | SEQ_TEST_*************RGKKSEQ_TEST_****_0003_RDS |                 0|                0|0%                  |0%                 |
  9. |4    | SEQ_TEST_*************RGKKSEQ_TEST_****_0004_RDS |                 0|                0|0%                  |0%                 |
  10. |5    | SEQ_TEST_*************RGKKSEQ_TEST_****_0005_RDS |                 0|                0|0%                  |0%                 |
  11. |6    | SEQ_TEST_*************RGKKSEQ_TEST_****_0006_RDS |                 0|                0|0%                  |0%                 |
  12. |7    | SEQ_TEST_*************RGKKSEQ_TEST_****_0007_RDS |                 0|                0|0%                  |0%                 |
  13. +------+--------------------------------------------------+-------------------+------------------+---------------------+--------------------+
  14. 8 rows inset(0.01 sec)
相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
相关文章
|
7月前
|
关系型数据库 分布式数据库 数据库
PolarDB常见问题之数据库不能自己减少节点如何解决
PolarDB是阿里云推出的下一代关系型数据库,具有高性能、高可用性和弹性伸缩能力,适用于大规模数据处理场景。本汇总囊括了PolarDB使用中用户可能遭遇的一系列常见问题及解答,旨在为数据库管理员和开发者提供全面的问题指导,确保数据库平稳运行和优化使用体验。
|
5月前
|
SQL 关系型数据库 分布式数据库
PolarDB产品使用问题之主节点和列存节点的执行计划相同,而只读行存节点的执行计划不同,是什么原因
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
5月前
|
存储 运维 关系型数据库
PolarDB产品使用问题之在删除主节点上的表后尝试查询归档表遇到问题,该如何解决
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
5月前
|
运维 关系型数据库 分布式数据库
PolarDB产品使用问题之将部分表设置为压缩表,是否会对节点的整体性能影响
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
5月前
|
关系型数据库 Serverless 分布式数据库
PolarDB产品使用问题之inplace方式是否支持集群所有节点的弹性扩容
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
6月前
|
运维 关系型数据库 MySQL
PolarDB产品使用问题之多主集群配置多个全局只读节点最多可增加到多少个
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
6月前
|
消息中间件 关系型数据库 分布式数据库
PolarDB产品使用问题之rockermq后增加一个broker节点,topic该如何同步
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
7月前
|
负载均衡 关系型数据库 MySQL
关系型数据库的安装和配置数据库节点
【5月更文挑战第5天】关系型数据库的安装和配置数据库节点
225 3
关系型数据库的安装和配置数据库节点
|
6月前
|
关系型数据库 Java 数据库连接
PolarDB产品使用问题之JDBC是否可以直接链接DN节点
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
6月前
|
关系型数据库 分布式数据库 数据库
PolarDB产品在使用的过程中如何设置优先级数据库节点
在PolarDB中设置优先级节点涉及登录管理控制台,创建新节点并选择“设置优先级”选项。优先级高的节点不等同于性能更好,而是系统优先处理请求的目标。配置时需依据实际需求。[链接](https://www.caigumoke.com/cj/e1a7fff4.html)[链接](https://www.caigumoke.com/yh/b3b74248.html)

相关产品

  • 云原生分布式数据库 PolarDB-X