文档下载建议反馈入口

  • 查看数据分片

数据分片管理

KWDB 将所有用户数据和几乎所有系统数据存储在排序的键值对映射中。这个键空间被划分为多个键空间中的连续块,即数据分片(range)。每个键始终可以在单个数据分片内找到。 从 SQL 的角度来看,表最初会映射到单个数据分片,数据分片中的每个键值对对应表中的一行。数据分片的大小达到 512 MiB后,系统会自动将其拆分为两个数据分片。随着表的增长,新生成的数据分片也会继续进行类似的拆分操作。当用户数据减少时,数据分片会自动合并。注意:由于 KWDB 采用标记删除的方式处理数据删除,数据分片不会立即合并,只有在垃圾回收过程中实际删除数据后,数据分片才会合并。

查看数据分片

SHOW RANGES 语句用于显示数据库、表、索引的数据分片信息,验证 SQL 数据如何映射到基础数据分片以及数据分片副本的位置。

前提条件

用户为 Admin 用户或者 Admin 角色成员。默认情况下,root 用户具有 Admin 角色。

语法格式

SHOW RANGES FROM [TABLE <table_name> | INDEX <table_name> @ <index_name> | DATABASE <database_name>];

参数说明

参数说明
table_name待查看的表名。
index_name待查看的索引名。
database_name待查看的数据库名。

语法示例

  • 查看表的数据分片。

    以下示例查看 orders 表的数据分片。

    SHOW RANGES FROM TABLE orders;
    

    执行成功后,控制台输出以下信息:

      start_key | end_key | range_id | range_size_mb | lease_holder | lease_holder_locality | replicas | replica_localities
    ------------+---------+----------+---------------+--------------+-----------------------+----------+---------------------
      NULL      | NULL    |      180 |      0.000077 |            1 |                       | {1}      | {""}
    (1 row)
    
  • 查看索引的数据分片。

    以下示例查看 orders 表的 primary 索引的数据分片。

    SHOW RANGES FROM INDEX orders @ primary;
    

    执行成功后,控制台输出以下信息:

      start_key | end_key | range_id | range_size_mb | lease_holder | lease_holder_locality | replicas | replica_localities
    ------------+---------+----------+---------------+--------------+-----------------------+----------+---------------------
      NULL      | NULL    |      180 |      0.000077 |            1 |                       | {1}      | {""}
    (1 row)
    
  • 查看数据库的数据分片。

    以下示例查看 db3 数据库的数据分片。

    SHOW RANGES FROM DATABASE db3;
    

    执行成功后,控制台输出以下信息:

      table_name | start_key | end_key | range_id | range_size_mb | lease_holder | lease_holder_locality | replicas | replica_localities
    -------------+-----------+---------+----------+---------------+--------------+-----------------------+----------+---------------------
      order_list | NULL      | NULL    |      185 |      0.000145 |            1 |                       | {1}      | {""}
      orders     | NULL      | NULL    |      180 |      0.000077 |            1 |                       | {1}      | {""}
      orders_seq | NULL      | NULL    |      183 |      0.000114 |            1 |                       | {1}      | {""}
    (3 rows)