4.7 表空间

4.7.1 什么是表空间

  1. 把不同的表放到不同的存储介质或文件系统下,这时就需要用到表空间

  2. 在PostgreSQL中,表空间实际上是为表指定一个存储目录

  3. 在创建数据库时可以为其指定默认的表空间

  4. 创建表、创建索引的时候可以指定表空间,这样表、索引就可以存储到表空间对应的目录下了

4.7.2 表空间的使用方法

  1. 表空间创建语法

    CREATE TABLESPACE 表空间名 [ OWNER user_name ] LOCATION '存储路径'
  2. 创建数据库时指定默认表空间

    CREATE DATABASE 库名 TABLESPACE 表空间名;
  3. 修改数据库默认表空间语法:

    ALTER DATABASE 库名 SET TABLESPACE 表空间名;

    注意:执行操作时,不能有用户连接到这个数据库上,否则会报错

  4. 建表时候也可以指定表空间

    CREATE TABLE 表名 (
    	字段 类型,
        字段 类型,
        ... ...
    ) TABLESPACE 表空间名
  5. 创建索引时指定表空间

    CREATE INDEX 索引名 ON 表名(字段名) TABLESPACE 表空间名;
  6. 创建唯一约束时可以指定约束索引的表空间

    ALTER TABLE 表名 ADD CONSTRAINT 索引名 UNIQUE(字段名) USING INDEX TABLESPACE 表空间名;
  7. 增加主键时指定逐渐索引表空间

    ALTER TABLE 表名 ADD CONSTRAINT 索引名 PRIMARY KEY(字段名) USING INDEX TABLESPACE 表空间名;
  8. 将表从一个表空间移到另一个表空间

    ALTER TABLE 表名 SET TABLESPACE 新表空间名;

    注意:在移动表的时候表会被锁定,对此表的所有操作都将无法执行,包括SELECT操作,所以请考虑在合适的时机做这个操作。

最后更新于