在PostgreSQL中,数据库在逻辑上分成多个存储单元,该单元称作表空间。表空间用作把逻辑上相关的数据结构放在一起。数据库逻辑上是由一个或多个表空间组成。在数据库初始化的时候,会自动创建pg_default和pg_global两个表空间。其中:
- pg_global:该表空间用于存放系统表。
- pg_default:创建表时的默认表空间,该表空间的物理文件存储在数据目录中的base目录中,如:/home/postgres/training/pgsql/data/base。
视频讲解如下:
https://www.bilibili.com/video/BV1EsWAeoEdY/?aid=112980658291...
下面通过具体的操作来演示如何查看PostgreSQL中已有的表空间和如何创建自己的表空间。
(1)登录PostgreSQL。
bin/psql
(2)查看PostgreSQL中已有的表空间。
postgres=# \db
# 输出的信息如下:
List of tablespaces
Name | Owner | Location
------------+----------+----------
pg_default | postgres |
pg_global | postgres |
(2 rows)
(3)创建自己的表空间。
postgres=# create tablespace mydemotbs location
postgres-# '/home/postgres/training/pgsql/data/mydemotbs';
(4)在mydemotbs 表空间上创建表。
postgres=# create table testtable1(tid int primary key,tname text)
postgres-# tablespace mydemotbs;
(5)再次查看PostgreSQL中已有的表空间。
postgres=# \db
# 输出的信息如下:
List of tablespaces
Name | Owner | Location
------------+----------+--------------------------------------------
mydemotbs | postgres | /home/postgres/training/pgsql/data/mydemotbs
pg_default | postgres |
pg_global | postgres |
(3 rows)
(6)将该表空间设置为默认的表空间。
postgres=# set default_tablespace = mydemotbs;
(7)查询表空间信息
postgres=# select * from pg_tablespace;
# 输出的信息如下:
oid | spcname | spcowner | spcacl | spcoptions
-------+------------+----------+--------+------------
1663 | pg_default | 10 | |
1664 | pg_global | 10 | |
16394 | mydemotbs | 10 | |
(3 rows)
(8)使用\db+命令查看表空间的详细信息,输出的信息如下:
postgres=# \db+
# 输出的信息如下:
List of tablespaces
Name | Owner |...| Options | Size | Description
------------+----------+---+---------+------------+-------------
mydemotbs | postgres |...| | 8237 bytes |
pg_default | postgres |...| | 29 MB |
pg_global | postgres |...| | 531 kB |
(3 rows)
# 注意:命令中的加号表示显示详细信息。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。