CREATE TABLESPACE tablespace_name [ OWNER user_name ] LOCATION 'directory' [ WITH ( tablespace_option = value [, ... ] ) ]
CREATE TABLESPACE注册一个集群范围内的新表空间。 表空间的名字必须在该数据库集群中的任何现有表空间中唯一。
表空间允许超级用户在文件系统中定义一个可选的位置, 这个位置可以存放代表数据库对象的数据文件(比如表和索引)。
一个用户,如果有合适的权限,就可以把CREATE DATABASE, CREATE TABLE, CREATE INDEX, ADD CONSTRAINT 之一传递给tablespace_name, 这样就让这些对象的数据文件存储在指定的表空间里。
警告 |
一个表空间不能独立于定义它的集群使用;参阅第 21.6 节。 |
要创建的表空间的名字。这个名字不能以pg_开头, 因为这些名字是保留给系统表空间使用的。
将拥有这个表空间的用户名。如果省略,缺省为执行此命令的用户名。 只有超级用户可以创建表空间,但是他们可以把表空间的所有者授予非超级用户。
用于表空间的目录。目录必须是空的,并且由运行PostgreSQL 系统用户所有。目录必须用一个绝对路径声明。
一个要设置或者重设的表空间参数。当前,唯一可用的参数是 seq_page_cost和random_page_cost。 为一个特定的表空间设定其中的一个值, 覆盖规划器读取该表空间中表页面的通常估计成本, 就像通过相同名字的配置参数(参阅seq_page_cost、 random_page_cost)确定的一样。 如果一个表空间位于磁盘上,比其他I/O子系统更快或者更慢时,这个可能是有用的。