PG表空间

定义表空间
CREATE TABLESPACE fastspace LOCATION '/mnt/sda1/postgresql/data';

这个位置必须是一个现有的空目录,并且属于PostgreSQL系统用户。所有随后在该表空间创建的对象都将被存放在这个目录下的文件里。

注意: 通常在一个逻辑文件系统上建立多个表空间没有什么意义,因为无法控制一个逻辑文件系统里不同文件的位置。不过,PostgreSQL 并不做这方面的任何强制,并且它实际上并不知道文件系统边界。它只知道在指定的目录里存储文件。

创建表指定表空间

CREATE TABLE foo(i int) TABLESPACE space1;

 

临时设置默认表空间,永久生效需要去配置文件修改。

db1=# show default_tablespace ;
 default_tablespace 
--------------------
 
(1 row)

db1=# set default_tablespace = pg_default;
SET
db1=# show default_tablespace ;
 default_tablespace 
--------------------
 pg_default
(1 row)

创建一个表空间后,如果配置文件没有配置default_tablespace,那么将会以新创建的这个表空间作为默认表空间。

 

删除表空间之前需要先删除掉表空间上的所有数据。

PG表空间

查看现有表空间

 

SELECT spcname FROM pg_tablespace;

或是psql的\db