表空间的概念:
在PostgreSQL中提供了表空间的概念,在PostgreSQL中表空间实际上就是给表指定一个存储目录,这件事情十分的伟大,为什么这么说呢?大家都知道现在很多新兴的硬件技术比如PCIe SSD技术的出现,使得存储的速度比普通的磁盘快数量级倍,这种情况下,当我们想要提升查询的性能时,我们可能希望将表存储在SSD上,通过表空间就能实现这种需求。
表空间描述
数据库默认的表空间pg_default 是用来存储系统目录对象、用户表、用户表index、和临时表、临时表index、内部临时表的默认空间,他是模板数据库template0和 template1的默认表空间。
pg_default 为 PostgreSQL也可以理解成系统表空间,它对应的物理位置为 $PGDATA/base目录。
pg_global –系统字典表都存这里
pg_default –template0,template1默认表空间,因此通过create database 不带tablespace参数创建的数据库都使用此表空间
-- 查看所有表空间
select spcname from pg_tablespace;
-- 查看表空间大小
select pg_size_pretty(pg_tablespace_size('pg_default'));
-- 查看表空间属性
select oid,* from pg_tablespace;
-- 以kb、mb、gb的形式显示表的大小
select pg_size_pretty(pg_relation_size('a'));
-- 表的总大小,包括索引的大小
select pg_size_pretty(pg_total_relation_size('a'));