postgres base目录实践性分析
来源:互联网 发布:视频流媒体服务器编程 编辑:程序博客网 时间:2024/06/09 15:27
postgres安装后下面有个base目录,目录下的文件通常是一串数字组成,这串数字是什么呢?他是如何和表对应关联起来的?
SQL操作
create table test(c int4);select oid,* from pg_class where relname ='test'"oid";"relname";"relnamespace";"reltype";"reloftype";"relowner";"relam";"relfilenode";"reltablespace";"relpages";"reltuples";"relallvisible";"reltoastrelid";"reltoastidxid";"relhasindex";"relisshared";"relpersistence";"relkind";"relnatts";"relchecks";"relhasoids";"relhaspkey";"relhasrules";"relhastriggers";"relhassubclass";"relispopulated";"relfrozenxid";"relminmxid";"relacl";"reloptions"410265;"test";2200;410267;0;10;0;410265;0;0;0;0;0;0;f;f;"p";"r";1;0;f;f;f;f;f;t;61603587;1929;"";""
由于oid是隐藏列,必须明确指定才可以显示出来,类似ctid,xmin,xmax,cmin,cmax等等。
Linux操作
[root@R720 base]# find ./ -name 410265./98983/410265[root@R720 base]# ll ./98983/410265 -rw------- 1 postgres postgres 0 8月 6 15:49 ./98983/410265
SQL操作
insert into test values(1);
Linux操作
[root@R720 base]# ll ./98983/410265 -rw------- 1 postgres postgres 8192 8月 6 15:49 ./98983/410265我们发现文件大小被改变,所以可以判定这个文件和表的关系。
SQL操作
truncate test ;select oid,* from pg_class where relname ='test'"oid";"relname";"relnamespace";"reltype";"reloftype";"relowner";"relam";"relfilenode";"reltablespace";"relpages";"reltuples";"relallvisible";"reltoastrelid";"reltoastidxid";"relhasindex";"relisshared";"relpersistence";"relkind";"relnatts";"relchecks";"relhasoids";"relhaspkey";"relhasrules";"relhastriggers";"relhassubclass";"relispopulated";"relfrozenxid";"relminmxid";"relacl";"reloptions"410265;"test";2200;410267;0;10;0;410271;0;0;0;0;0;0;f;f;"p";"r";1;0;f;f;f;f;f;t;61603590;1929;"";""
我们发现oid没有改变,但是relfilenode被改变了,relfilenode是什么呢?
Linux操作
[root@R720 base]# ll ./98983/410265 ls: 无法访问./98983/410265: 没有那个文件或目录[root@R720 base]# find ./ -name 410265[root@R720 base]# find ./ -name 410271./98983/410271[root@R720 base]# ll ./98983/410271-rw------- 1 postgres postgres 0 8月 6 15:56 ./98983/410271
以上Linux操作可以看出,truncate表之后文件被物理删除了,而新建的文件名字对应的就是relfilenode字段值。
0 0
- postgres base目录实践性分析
- Postgres分析文档
- Postgres 数据库分析工具
- postgres row_number()分析
- postgres创建索引分析
- Spring MVC 实践 - Base
- crytoppp库分析-base
- postgres
- postgres
- postgres
- postgres
- Postgres
- postgres 之 initdb 源码分析 一
- postgres 之 initdb 源码分析 三
- postgres 之 initdb 源码分析 二
- postgres 之 initdb 源码分析 四
- postgres 之 initdb 源码分析 五
- postgres 之 initdb 源码分析 六
- js获取当前日期的前后几天
- 为Python配置caffe(基于linux)
- Objective-C 表视图-自定义单元格
- 单链表的拆分
- 运放的单电源供电与双电源供电的区别
- postgres base目录实践性分析
- html5在IOS下自动播放音乐
- AV 时代终结?
- Kubernetes v1.0特性解析
- java之类变量、成员变量、局部变量
- POJ1160 【Post Office】
- 一张6亿条数据表引发的事故
- CentOS 6.5 安装 git
- nth-child和nth-of-type区别