Postgresql:表空间
postgresql对表空间的说明很简单,基于两点理由:
- 扩展存储空间,跳出os对文件系统的大小限制,不断扩充可以空间
- 让数据库管理员针对系统的应用特点....优化系统的性能。
postgresql的tablespace就是让postgresq使用的专用os目录(路径)。并没有什么神秘的地方。在一个逻辑文件系统上建立多个表空间没有多少意义,因为你不能控制逻辑文件系统里的单个文件
create tablespace tbl_name location 'os_dir_path_str'; --os_path必须是空的、postgresql帐号有权的目录。创建表空间的用户必须是superuser,创建完表空间之后,可以将表空间的create权限赋给普通用户使用!
指定表空间、默认表空间
- 表空间的使用对象:表、index、数据库:在创建这些对象时,可以显式的指定tablespace tals_name子句指示对象使用的表空间;
- 如果不指定,系统会使用当前有效的默认表空间。
- 类似的,临时表和临时表的index、内部临时表:也有默认的临时表空间。指定临时表空间系统参数时,可以指定多个表空间,postgresql会随机使用它们
- initdb.exe初始化的两个默认表空间pg_global、pg_default
- 数据库默认的表空间pg_default 是用来存储系统目录对象、用户表、用户表index、和临时表、临时表index、内部临时表的默认空间。他是模板数据库template0和template1的默认表空间
- 数据库默认的表空间pg_global是用来存储共享系统目录的默认空间
- 数据库默认表空间可以在create database是通过 tablespace tbs_anme 子句来改变
表空间是和单个数据库无关的,他被所有的数据库使用。因此,表空间只有没有任何对象使用时,才能drop掉!
postgresql允许 通过符号链接 简化表空间的实施,那在不支持符号链接的os上就无法简化,只能显式的创建所需的表空间了!
分类:
Postgres
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)