PostgreSQL-表空间
表空间 基本概念 不同的数据库表空间有不同的定义。 在 postgres 中,表空间 允许在文件系统中定义数据库对象存储的位置,实质上就是指定了一个目录。 与数据库的关系 在 postgres 中,一个表空间可以让多个数据库使用,而一个数据库也可以使用多个表空间,属于“多对多”的关系 在 oracle 中,一个表空间只属于一个数据库,而一个数据库可以使用多个表空间,属于“一对多”的关系 应用场景 1. 存储磁盘没有空间时,可以使用表空间把数据存到其他地方; 如数据库一般装在root下,root相当于是一个磁盘分区,当root满时,可以使用表空间把数据存到 home 分区。 2. 利用表空间对数据库进行性能优化 如频繁使用的数据表或者索引放在高性能的硬盘上,而较少使用的放在普通硬盘上。 初始表空间 postgres 自带了两个表空间,pg_default, pg_global 表空间pg_default是用来存储系统目录对象、用户表、用户表index、和临时表、临时表index、内部临时表的默认空间。对应存储目录$PADATA/base/ 表空间pg_global用来存放系统字典表;对应存储目录$PADATA/global/ pg_tblspc 就是表空间,初始是空的,当手动增加表空间时,该目录下会自动生成一个软连接,指向表空间设定的路径。 设定表空间的一系列命令