GBase 8s HASH 分区

HASH分区

HASH分区表是按分区列的HASH计算结果来决定其分区的,而特定的分区列其HASH值是固定的,也就是说HASH分区表的数据是按分区列值来聚集的,同样的分区列肯定在同一分区。

创建HASH分区

语法图解
在这里插入图片描述

语法格式

HASH ( <fragment_key> {,<fragment_key>} ) 
     ( PARTITION [ partition_name ] [ DBSPACE dbspace_name ]
       {, PARTITION [ partition_name ] [ DBSPACE dbspace_name ]}
     )

参数说明

元素描述限制
fragment_key分区列名称必须是表中的列
partition_name分区名称
dbspace_namedbspace名称不指定dbspase则为当前数据库默认的表空间;指定的dbspase需存在

管理HASH分区

HASH分区的管理支持增加分区(add子句)、截断分区(truncate子句)和结合分区(coalesce子句)。

语法格式

--增加分区
<alter_fragmennt_on_table> ADD PARTITION [ partition_name ] [ DBSPACE dbspace_name ]
--结合分区
<alter_fragmennt_on_table> COALESCE PARTTITION
--截断分区
TRUNCATE PARTITION partition

增加分区

增加分区,数据会重新在增加分区后的所有分区中根据哈希运算结果重新分布。

结合分区

结合分区是针对哈希分区或者包含哈希分区的复合分区的,目的是减少分区数。被结合的分区是由数据库自动选择的,结合完成后该分区会被删除,数据会被合并至其它某个数据库指定分区中,分区数大于等于2个才支持结合操作。

截断分区

主要功能为清空哈希分区表中的数据,但哈希分区表本身并不删除。

示例

  1. 人员表user中,按照部门字段departmentID作为分区列进行HASH分区
CREATE TABLE USER(
    name varchar(20),
    departmentID int,
    age int,
    address varchar(50)
    )PARTITION BY HASH(departmentID)
        (
            partition p1 DBSPACE dbs1,
            partition p2 DBSPACE dbs2,
            partition p3 DBSPACE dbs3
        );
  1. 人员表user增加一个分区p4:
ALTER FRAGMENT ON TABLE USER ADD PARTITION p4 DBSPACE dbs4;
  1. 人员表user执行1次结合分区,从而自动减少1个分区:
ALTER FRAGMENT ON TABLE USER COALESCE PARTITION;
  1. 人员表user清空掉p1分区数据
ALTER FRAGMENT ON TABLE USER TRUNCATE PARTITION p1;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值