开发者社区> 绛云> 正文

postgresql物理文件

简介: postgresql物理文件
+关注继续查看

base目录下是每个数据库文件存放的地方
image
这些数字含义是每个数据库的oid。
image
pgsql_tmp是用来存放临时文件的,想一些超过内存大小的排序等。
进入其中一个目录看下里面包含的文件:fsm文件,vm文件,init文件和数据文件。
image
这些数字的对应着pg_class中字段relfilenode值,随便去一个文件名如46203去pg_class中查找一下。
image
这个是表名是b的对于的数据文件。这个文件不只是每个表都有,索引也会有这样的一个文件。
image
看到b表的索引relfilenode是46204,对于该数据库目录下也能找到同样的文件。
如果这个表很大你会看到这种情况:
image
默认表或者索引大小超过1G时就会进行分割,这个大小可以通过安装pg是指定--with-segsize调整段的大小。

后缀是_fsm的是fsm文件,这个文件是用来进行空间映射的表示页面中可以使用的空余空间。

vm文件是标识该页的所有元组对所有事务是否可见,如果标识可见可以跳过vacuum扫描。

init文件是每一个不记录日志表或者该表上的每一个索引都会有个对应的文件。

还有一种文件,toast文件,pg不允许跨页面存元组,如果字段很大会将呢个字段的数据放入toast文件中。toast文件主要有4中存储方式plain不压缩,不进行外行存储,这个就是普通定长字段的存储方式。 extended允许外行存储和压缩,toast默认存储方式。 external允许外行存储不允许压缩。
main允许压缩不允许外行存储,如果压缩后还是过大的话还是会进行外行存储的。
toast文件有点,如果没有选择用toast文件存储的字段时,不会扫描toast文件。
几个关于文件大小的函数:
pg_column_size(any)列大小。
pg_database_size(name)数据库大小。
pg_relation_size(regclass)关系的大小,不含索引和toast文件,vm文件,fsm文件。
pg_relation_size(regclass,'fsm')可以得出关系中fsm或者vm文件大小。
pg_indexes_size(regclass)索引大小包含fsm文件。
pg_size_pretty(numberic)将字节转换成MB,GB等单位
pg_table_size(regclass)这个大小是表的大小还有toast文件,fsm文件,vm文件加起来的大小,不含索引。
pg_total_relation_size(regclass)包含索引的各种表文件的全部大小。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
解决Windows下Postgresql使用copy导入out文件报Permission denied的问题
解决Windows下Postgresql使用copy导入out文件报Permission denied的问题
62 0
干货!RDS MySQL高频物理备份,看这篇就够了
MySQL的物理备份包含了全量备份、增量备份、逻辑事务日志备份。
248 0
2 PostgreSQL 物理,逻辑,进程结构以及系统表系统函数|学习笔记
快速学习2 PostgreSQL 物理,逻辑,进程结构以及系统表系统函数
140 0
7 PostgreSQL 物理备份和还原,逻辑备份和还原|学习笔记
快速学习7 PostgreSQL 物理备份和还原,逻辑备份和还原
507 0
postgresql :pg_read_binary_file插入文件
postgresql :pg_read_binary_file插入文件
103 0
postgresql口令文件 追加
特殊情况说明
31 0
PolarDB-X 1.0-常见问题-分库分表问题-删除数据库时,PolarDB-X各物理分库是否会被自动删除?是否会影响RDS上的数据库?
在控制台上删除PolarDB-X的数据库时,只会删除之前由PolarDB-X所创建的数据库,不会影响原本在RDS上创建的数据库。
126 0
PostgreSQL物理同步 12.2
本文探讨: 流复制,复制槽,wal日志传送,同步复制,异步复制,级联复制,多同步备用,多异步备用,规划高可用,待机中的连续归档,故障切换、切换后如何重建备库(pg_rewind)
873 0
RDS for MySQL8.0物理备份恢复到本地自建数据库
此文章是centos7下的恢复流程。 1、安装MySQL8.0(采用yum方式安装):wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm yum localinstall mysql80-community-release-el7-1.noarch.rpm yum -y install yum-utils 默认安装的就是8.0版本yum install mysql-community-server 安装好了不要启动数据库。
3193 0
+关注
绛云
阿里云数据库专家服务组PostgreSQL dba,热爱pg,正在学习pg内核的相关的代码,欢迎大家和我讨论,一起共同成长
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
PostgreSQL 物联网六脉神剑
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关镜像