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

key分区

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

语法

...
PARTITION BY KEY(column_list)
 PARTITIONS num

KEY 分区只采用一个或多个列名的一个列表,它是按系统内部的哈希函数实现分区。

举例

创建表k1, 按id字段进行key分区。

Oceanbase> create table k2(id int primary key, name varchar(20)) partition by key() partitions 2;
Query OK, 0 rows affected (0.78 sec)

Oceanbase>show create table k2;
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                                                                                                                                                                 |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| k2    | CREATE TABLE `k2` (
  `id` int(11) NOT NULL,
  `name` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) DEFAULT CHARSET = utf8mb4 REPLICA_NUM = 3 BLOCK_SIZE = 16384 USE_BLOOM_FILTER = FALSE partition by key() partitions 2 |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.03 sec)

此例中,id是主键字段,partition by key()和partition by key(id)是等效的。

本文导读目录