表空间说明
GBase 8a的表空间功能实现了Express引擎表的数据存储路径用户可配置,一个表空间表示一个数据存储路径。表空间的创建规则是每个库可以存在多个表空间,只有一个默认表空间,一个表空间可以多个表使用,但一个表只能属于一个表空间。
默认初始情况下,每个库都有一个默认表空间sys_tablespace,sys_tablespace不可以删除,sys_tablespace默认指向现在的固定数据存储路径,即配置文件中datadir下的库名/sys_tablespace。
查看表空间
语法格式
SHOW [full] TABLESPACES;样例
gbase> SHOW FULL TABLESPACES; +------------------------+------------------------+------------+
| Tablespace_in_test_sdy | Tablespace_in_test_sdy | Is_default |
+------------------------+------------------------+------------+
| sys_tablespace | . | no |
| tbs1 | ../tbs1 | yes |
+------------------------+------------------------+------------+
2 rows in set (Elapsed: 00:00:00.00)创建表空间
语法格式
CREATE TABLESPACE [IF NOT EXISTS] [[vc_name.]database_name.]<tablespace_name> DATADIR <path> [SEGSIZE <segsize_value>] [MAXSIZE <maxsize_value>]参数说明
| 参数名称 | 说 明 |
|---|---|
| vc_name | 虚拟集群名称,可选项。 |
| database_name | 数据库名称,可选项。 |
| tablespace_name | 表空间名称,支持数字英文和下划线,长度为 64 个字符,不区分大小写,全部按照小写字符创建,且不允许以数字开头。 (该规则适用于全文,类似内容不再冗述); |
path | Tablespace 所对应的实际系统路径,路径支持相对路径和绝对路径,相对路径是相对于配置文件中配置的 datadir 路径 |
| segsize_value | Tablespace 中表的 seg 文件分裂大小,在 10M 到 2G 之间,使用带有 K、M、G 单位表示,默认为 2G; |
| maxsize_value | 指定表空间最大限额,它要大于 segsize 值,使用带有 K,M,G 单位表示。由用户保证磁盘可用空间大于 maxsize_value。 默认为不限制。该参数在集群层指定则表示每个节点的表空间最大限额。资源管理先于表空间进行空间的限额检验。 |
建表时指定表空间
功能说明
创建表时可以指定要使用的 TABLESPACE,不做指定则使用库的默认表空间。分区表作为一个表来看待,只能指定一个 tablespace,不支持为不同分区指定不同tablespace。
语法格式
CREATE TABLE [[vc_name.]database_name.]table_name (column_def...) TABLESPASCE=tablespace_name;
设置库的默认表空间
功能说明
用户可以修改指定库的默认 Tablespace,设置数据库的默认 Tablespace 后,创建表不指定 Tablespace 时,使用默认 Tablespace。该功能不支持针对系统库操作,包括 gbase、gctmpdb、performance_schema 和 information_schema 等。
语法格式
USE [[vc_name.]database_name.]tablespace_name AS DEFAULT TABLESPACE;



