GBase 8s数据库表和主键索引使用的空间分离方法
GBase 8s数据库创建主键时一般情况下有两种方法:
1,创建表时指定主键,如:
create table tab1
(
id int,
name varchar(255),
primary key(id)
) in datadbs01;
2,使用alter语句修改表结构的方式创建主键
create table tab1
(
id int,
name varchar(255)
) in datadbs01;
alter table tab1 add constraint primary key(id);
这两种方法都无法为主键自动创建的索引指定单独的空间。
其实有一种变通的方式,可以将表使用的空间和主键索引使用的空间分离开,需要在方法2前加上创建唯一索引(即:不让alter table add primary key自动创建索引,而是使用刚创建的唯一索引),具体如下:
-- 创建表,使用datadbs01空间
create table tab1
(
id int,
name varchar(255)
) in datadbs01;
-- 创建唯一索引,使用indexdbs01空间
create unique index ix_tab1_id on tab1(id) in indexdbs01;
-- 修改表,创建主键(关联唯一索引)
alter table tab1 add constraint primary key(id);