06-PGTableSpace

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;
posted @ 2026-01-05 16:28  大胖熊哈  阅读(3)  评论(0)    收藏  举报