06-PGTableSpace是什么数据库表空间?

摘要:PGTableSpace 在存储数据的时候,数据要落回磁盘。基于构建的tablespace,制定数据存放在磁盘上的物理位置。 如果没有设计tablespace,默认制定一个位置存储。 pgsql可以通过函数select pg_relatio
PGTableSpace 在存储数据的时候,数据要落回磁盘。基于构建的tablespace,制定数据存放在磁盘上的物理位置。 如果没有设计tablespace,默认制定一个位置存储。 pgsql可以通过函数select pg_relation_filepath('')查询指定表的路径。 postgres=# select pg_relation_filepath('student'); pg_relation_filepath ---------------------- base/5/24577 (1 row) 给了base/5/24577怎么理解呢,他实际上是postgres家目录下的路径,也就是/var/lib/postgres/data/base/5/24577 [root@desktop-f5s26of 5]# pwd /var/lib/postgres/data/base/5 [root@desktop-f5s26of 5]# ls -l 24577 -rw------- 1 postgres postgres 8192 Jan 4 17:06 24577 [postgres@desktop-f5s26of 5]$ cat 24577 ��~�N(� ��@��@��@��@ hhh ccc� bbb� 构建表空间,指定数据存放位置 Command: CREATE TABLESPACE Description: define a new tablespace Syntax: CREATE TABLESPACE tablespace_name [ OWNER { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER } ] LOCATION 'directory' [ WITH ( tablespace_option = value [, ... ] ) ] mkdir /var/lib/postgres/data/tp_data -- 创建表空间,只能是超级用户可以执行,同时还要提前创建目录 create tablespace tp_test location '/var/lib/postgres/data/tp_data'; -- 创建库,指定tablespace create database db_test tablespace tp_test;