全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 智能硬件
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 更多

hash分区

更新时间:2017-06-07 13:26:11

语法

HASH 分区将要被哈希的列指定一个列值或表达式,以及指定被分区的表将要被分割成的分区数量,OceanBase自动完成分区。

 ...
 PARTITION BY HASH (expr)
     PARTITIONS num

要使用 HASH 分区来分割一个表,要在 CREATE TABLE 语句上添加一个“PARTITION BY HASH (expr)”子句,其中“expr”是一个返回一个整数的表达式。它可以仅仅是字段类型为 OceanBase 整型的一列的名字。此外,你很可能需要在后面再添加一个“PARTITIONS num”子句,其中 num 是一个非负的整数,它表示表将要被分割成分区的数量。

举例

也许你想基于雇用雇员的年份来进行分区。这可以通过下面的语句来实现:

CREATE TABLE employees (
 id INT NOT NULL,
 fname VARCHAR(30),
 lname VARCHAR(30),
 hired DATE NOT NULL DEFAULT '1970-01-01',
 separated DATE NOT NULL DEFAULT '9999-12-31',
 job_code INT,
 store_id INT
 )
 PARTITION BY HASH(YEAR(hired))
     PARTITIONS 4;

使用场景

HASH分区主要用来确保数据在预先确定数目的分区中平均分布。

本文导读目录