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,那么将会以新创建的这个表空间作为默认表空间。
删除表空间之前需要先删除掉表空间上的所有数据。
查看现有表空间
SELECT spcname FROM pg_tablespace;
或是psql的\db