专业只做数据库实训和认证的品牌机构

微信公众号新浪微博
免费咨询电话:400-0909-964
当前位置: 网站首页 > postgresql > 教程 > PostgreSQL基础教程:对象标识符类型oid与relfilenode数据文件

PostgreSQL基础教程:对象标识符类型oid与relfilenode数据文件

文章来源: 更新时间:2020/6/8 15:45:37

在线老师点击咨询:

最新学讯:近期OCP认证正在报名中,因考试人员较多请尽快报名获取最近考试时间,报名费用请联系在线老师,甲骨文官方认证,报名从速!

我要咨询

PostgreSQL数据中,oid和relfilenode是比较容易混淆,但又是很重要的,这里就来简单介绍一下oid和relfilenode

oid:对象标识符类型Object Identifier Types ,内部使用,并作为系统表的主键

别名类型对查找一个对象的OID非常方便

可以在用户定义的表中使用,不推荐使用

oid不会添加到 用户自己创建的表里,除非指定 WITH OIDS 或者 default_with_oids 打开,oid是给内部表做标识用的,不推荐使用。

建议将 default_with_oids 设置为off。 建表的时候,如果想使用主键,请自行建立。

oid本身大小固定的,万一 行数超过了oid 的最大限制数(4 byte int),那就无法插入新行了。

oid2name可以获取数据库、对象的OID

Oid2name示例:

[postgres@hgdb01 data]$ oid2name
All databases:
    Oid  Database Name  Tablespace
----------------------------------
  73780          bench  pg_default
  41002           jwdb  pg_default
  13295       postgres  pg_default
  13290      template0  pg_default
      1      template1  pg_default
  16384         testdb  pg_default
[postgres@hgdb01 data]$ oid2name testdb
All databases:
    Oid  Database Name  Tablespace
----------------------------------
  73780          bench  pg_default
  41002           jwdb  pg_default
  13295       postgres  pg_default
  13290      template0  pg_default
      1      template1  pg_default

16384         testdb  pg_default


relfilenode

表或索引对象被创建后会生成以relfilenode编号命名的数据文件

并且改文件有1G的大小限制,超过1G或生成新的文件(文件名后边加数字编号)

relfilenode标识对象物理位置的数字标号,会随数据存放的变化位置变化而变化

函数pg_relation_filenode() 可以获得对象的relfilenode

testdb=# select pg_relation_filenode('sampletbl');
 pg_relation_filenode 
----------------------
                81993
(1 row)


以下表对象'sampletbl'所在的物理路径会包含relfilenode的编号

testdb=# select pg_relation_filepath('sampletbl'); 
 pg_relation_filepath 
----------------------
 base/16384/81993
(1 row)


OID 与relfilenode的关系

oid 类似于 身份证号,

relfilenode 类似于 户口本上户号,只要人的住址变了,户号就会变

知识点:

When the file size of tables and indexes exceeds 1GB, PostgreSQL creates a new file named like relfilenode.1 and uses it. If the new file has been filled up, next new file named like relfilenode.2 will be created, and so on.

补充说明:

The maximum file size of tables and indexes can be changed using the configuration, option --with-segsize when building PostgreSQL

本文地址:http://www.cuug.com.cn/postgresql/jiaocheng/24785194015.html 转载请注明!


在线预约 抢先报名 获取课程排期

Oracle培训机构

金牌讲师<>

冉乃纲-老师CUUG金牌讲师
冉老师 CUUG金牌讲师 Oracle及RedHat高级讲师、Unix/Linux 资深专家...[详细了解老师]

免费咨询上课流程 客服在线中

陈卫星-老师CUUG金牌讲师
陈老师 CUUG金牌讲师 精通Oracle管理、备份恢复、性能优化 11年Ora...[详细了解老师]

免费咨询上课流程 客服在线中

选学校如何选择适合自己的学校

CUUG -CHINA UNIX USER GROUP,是国际UNIX组织UNIFORUM的中国代表,是国内悠久的专业UNIX培训机构,被誉为中国UNIX 的摇篮。多年来,以提高教学质量为本,强调素质教育,积极引进、消化国外的新技术,有效的结合中国....[详情]

一站式服务(从入学到就业一帮到底)

入学

学习

就业

实操

食宿
地址:北京市海淀区北清路164号28-38号院
课程咨询:010-59426307 010-59426319 400-0909-964
企业服务:137 1818 8639(陈经理)
部分信息来源于网络,如有错误请联系指正!
版权所有@北京神脑资讯技术有限公司 (CUUG,中国UNIX用户协会) Copyright 2016 ALL Rights Reserved 京ICP备11008061号-1