其他分享
首页 > 其他分享> > lightdb create table/index指定表空间

lightdb create table/index指定表空间

作者:互联网

一般来说,现在为了各司其职,都把硬盘做成了san,raid,至少lvm。但是仍然有一些用户希望可以指定表空间和索引。在lightdb里面也支持该特性。如下:

lightdb@postgres=# create tablespace tab_tbs location '/data1/cn/tab_tbs';
WARNING:  tablespace location should not be inside the data directory
ERROR:  directory "/data1/cn/tab_tbs" does not exist
lightdb@postgres=# create tablespace tab_tbs location '/data1/cn/';
WARNING:  tablespace location should not be inside the data directory
CREATE TABLESPACE
lightdb@postgres=# create table tab_for_tbs(id int) tablespace tab_tbs;
CREATE TABLE
lightdb@postgres=# \dS+ tab_for_tbs 
                                Table "public.tab_for_tbs"
 Column |  Type   | Collation | Nullable | Default | Storage | Stats target | Description 
--------+---------+-----------+----------+---------+---------+--------------+-------------
 id     | integer |           |          |         | plain   |              | 
Tablespace: "tab_tbs"
Access method: heap

这样就在tab_tbs下创建了表。

索引也是一样的,如下:

lightdb@postgres=# create index idx_tab_for_tbs on tab_for_tbs(id) tablespace tab_tbs;
CREATE INDEX

需要注意的是,在lightdb-x分布式版本中,表空间属性不支持透传到DN节点。索引不能声明tablespace xxx子句,如下:

lightdb@postgres=# \dS+ tab_for_tbs_103402
                            Table "public.tab_for_tbs_103402"
 Column |  Type   | Collation | Nullable | Default | Storage | Stats target | Description 
--------+---------+-----------+----------+---------+---------+--------------+-------------
 id     | integer |           |          |         | plain   |              | 
Access method: heap

lightdb@postgres=# create index idx_tab_for_tbs on tab_for_tbs(id) tablespace tab_tbs;
ERROR:  specifying tablespaces with CREATE INDEX statements is currently unsupported

注:虽然如此,一般来说,我们是强烈建议数据文件,WAL日志,临时文件目录分开的。

标签:index,lightdb,create,tablespace,tab,tbs,postgres
来源: https://www.cnblogs.com/zhjh256/p/16585201.html