張 zi 浩
发布于

表空间的创建及使用

1、创建 filespace
hawq filespace -o hawqfilespace_config
2、创建 tablespace
create tablespace testtablespace filespace testfs
3、创建库指定 tablespace
create database db_t_space tablespace testtablespace;
4、创建表指定 tablespace
create table test200(id int) tablespace testtablespace;
-- 查看表的存储位置
select t1.fselocation||E'/'||t2.dat2tablespace||E'/'||t2.oid||E'/'||t3.relfilenode from pg_filespace_entry t1,pg_database t2,pg_class t3
where t1.fsefsoid = t2.dat2tablespace::int - 1
and t2.datname=current_database()
and t2.oid is not null
and t3.relname = 'tablename';

评论(5)
  • 張 zi 浩
    張 zi 浩 回复
    Eason Eason 2022-01-18 14:37:15

    为啥即有 filespace 又有 tablespace?
    两者之间有啥异同与异同?

    filespace 可以认为是多个文件目录的集合,可以对应一个或者多个 tablespace

  • Eason
    Eason 回复

    为啥即有 filespace 又有 tablespace?
    两者之间有啥异同与异同?

  • 張 zi 浩
    張 zi 浩 回复
    zdsg zdsg 2022-01-18 10:01:56

    表空间的作用是什么呀,有什么实际应用意义?

    这么做至少有两个用处。首先,如果初始化集群所在的分区或者卷用光了空间,而又不能扩展,那么表空间可以在一个不同的分区上创建和使用,直到系统可以重新配置。
    第二,表空间允许管理员根据数据库对象的使用模式安排数据位置,从而优化性能。比如,一个很频繁使用的索引可以放在非常快并且非常可靠的磁盘上,比如一种非常贵的固态设备。而同时,一个存储归档的数据,很少使用的或者对性能要求不高的表可以存储在一个便宜且比较慢的磁盘系统上。

  • zdsg
    zdsg 回复

    表空间的作用是什么呀,有什么实际应用意义?

  • 罗名岳
    罗名岳 回复

    不错不错,可以直接用

test