GBase 8a数据库集群从V95开始支持分区,本文介绍用户在SQL里对指定分区的查询方法。
有关创建分区表的介绍,请参考:
GBase 8a集群支持分区表功能使用样例
GBase 8a 元数据表介绍
目录导航
语法
TABLENAME partition(PARTITION_NAME[,P2...])
说明
在表名字后面,通过partition关键字,指定分区名字,多个分区用逗号分割。
样例
表结构
CREATE TABLE "t_key_int" (
  "id" int(11) DEFAULT NULL,
  "name" varchar(100) DEFAULT NULL,
  "birth" date DEFAULT NULL
) 
 PARTITION BY KEY (id)
(PARTITION p01 TABLESPACE = 'sys_tablespace' ENGINE = EXPRESS,
 PARTITION p02 TABLESPACE = 'sys_tablespace' ENGINE = EXPRESS) 
数据
gbase> select * from t_key_int;
+------+--------------------+------------+
| id   | name               | birth      |
+------+--------------------+------------+
|    7 | 444444444444444444 | 2021-03-08 |
|    2 | 444444444444444444 | 2021-03-08 |
|    4 | 444444444444444444 | 2021-03-08 |
+------+--------------------+------------+
3 rows in set (Elapsed: 00:00:00.01)
查询指定一个分区
gbase> select * from t_key_int partition(p01);
+------+--------------------+------------+
| id   | name               | birth      |
+------+--------------------+------------+
|    7 | 444444444444444444 | 2021-03-08 |
+------+--------------------+------------+
1 row in set (Elapsed: 00:00:00.01)
gbase> select * from t_key_int partition(p01) where id<10;
+------+--------------------+------------+
| id   | name               | birth      |
+------+--------------------+------------+
|    7 | 444444444444444444 | 2021-03-08 |
+------+--------------------+------------+
1 row in set (Elapsed: 00:00:00.00)
查询指定多个分区
gbase> select * from t_key_int partition(p01,p02) where id<10;
+------+--------------------+------------+
| id   | name               | birth      |
+------+--------------------+------------+
|    7 | 444444444444444444 | 2021-03-08 |
|    2 | 444444444444444444 | 2021-03-08 |
|    4 | 444444444444444444 | 2021-03-08 |
+------+--------------------+------------+
3 rows in set (Elapsed: 00:00:00.01)