首页 > 数据库 >PGSQL系统表之 pg_class 记载表和几乎所有有字段或者是那些类似表的东西

PGSQL系统表之 pg_class 记载表和几乎所有有字段或者是那些类似表的东西

时间:2023-04-26 11:22:11浏览次数:45  
标签:关系 oid 视图 PGSQL 表之 有字段 bool pg class

 

pg_class

pg_class表记载表和几乎所有有字段或者是那些类似表的东西。 包括索引(不过还要参阅pg_index)、序列、视图、物化视图、 复合类型和一些特殊关系类型;参阅relkind。在下面, 当指所有这些对象的时候说"关系"(relations)。不是所有字段对所有关系类型都有意义。

表 47-11. pg_class 字段

名字类型引用描述
oid oid   行标识符(隐藏属性; 必须明确选择)
relname name   表、索引、视图等的名字。
relnamespace oid pg_namespace.oid 包含这个关系的名字空间(模式)的 OID
reltype oid pg_type.oid 如果有,则为对应这个表的行类型的数据类型的OID(索引为零,它们没有pg_type记录)。
reloftype oid pg_type.oid 对于类型表,为底层复合类型的OID,对于所有其他关系为0
relowner oid pg_authid.oid 关系所有者
relam oid pg_am.oid 如果行是索引,那么就是所用的访问模式(B-tree, hash 等等)
relfilenode oid   这个关系在磁盘上的文件的名字,0表示这是一个"映射的"关系, 它的文件名取决于行级别的状态
reltablespace oid pg_tablespace.oid 这个关系存储所在的表空间。如果为零,则意味着使用该数据库的缺省表空间。 如果关系在磁盘上没有文件,则这个字段没有什么意义。
relpages int4   以页(大小为BLCKSZ)的此表在磁盘上的形式的大小。 它只是规划器用的一个近似值,是由VACUUM,ANALYZE 和几个 DDL 命令,比如CREATE INDEX更新。
reltuples float4   表中行的数目。只是规划器使用的一个估计值,由VACUUM,ANALYZE 和几个 DDL 命令,比如CREATE INDEX更新。
relallvisible int4   在表的可见映射中标记所有可见的页的数目。只是规划器使用的一个估计值, 由VACUUM,ANALYZE 和几个 DDL 命令,比如CREATE INDEX更新。
reltoastrelid oid pg_class.oid 与此表关联的 TOAST 表的 OID ,如果没有为 0 。TOAST 表在一个从属表里"离线"存储大字段。
reltoastidxid oid pg_class.oid 对于 TOAST 表是它的索引的 OID ,如果不是 TOAST 表则为 0
relhasindex bool   如果它是一个表而且至少有(或者最近有过)一个索引,则为真。
relisshared bool   如果该表在整个集群中由所有数据库共享则为真。只有某些系统表 (比如pg_database)是共享的。
relpersistence char   p = permanent table(永久表), u = unlogged table(未加载的表), t = temporary table (临时表)
relkind char   r = ordinary table(普通表), i = index(索引), S = sequence(序列), v = view(视图), m = materialized view(物化视图), c = composite type(复合类型), t = TOAST table(TOAST 表), f = foreign table(外部表)
relnatts int2   关系中用户字段数目(除了系统字段以外)。在pg_attribute 里肯定有相同数目对应行。又见pg_attribute.attnum
relchecks int2   表里的CHECK约束的数目;参阅pg_constraint
relhasoids bool   如果为关系中每行都生成一个 OID 则为真
relhaspkey bool   如果这个表有一个(或者曾经有一个)主键,则为真。
relhasrules bool   如表有(或曾经有)规则就为真;参阅pg_rewrite
relhastriggers bool   如果表有(或者曾经有)触发器,则为真;参阅pg_trigger
relhassubclass bool   如果有(或者曾经有)任何继承的子表,为真。
relispopulated bool   如果关系是填充的则为真(对所有关系为真,除了一些物化视图)
relfrozenxid xid   该表中所有在这个之前的事务 ID 已经被一个固定的("frozen")事务 ID 替换。 这用于跟踪该表是否需要为了防止事务 ID 重叠或者允许收缩pg_clog 而进行清理。如果该关系不是表则为零(InvalidTransactionId)。
relminmxid xid   该表中所有在这个之前的多事务 ID 已经被一个事务 ID 替换。 这用于跟踪该表是否需要为了防止多事务 ID 重叠或者允许收缩pg_clog 而进行清理。如果该关系不是表则为零(InvalidTransactionId)。
relacl aclitem[]   访问权限。参阅GRANTREVOKE获取详细信息。
reloptions text[]   访问方法特定的选项,使用"keyword=value"格式的字符串

pg_class中的几个布尔标识是懒于维护的:如果这是正确的状态则他们被保证为真, 但是当状态不再是真时不会被立马重新设置为假。例如,relhasindex 是由CREATE INDEX设置的,但是从不用DROP INDEX删除。 相反,如果发现表没有索引了,由VACUUM清除relhasindex。 这个安排避免了竞态条件,提高了并发性。

标签:关系,oid,视图,PGSQL,表之,有字段,bool,pg,class
From: https://www.cnblogs.com/lrzy/p/17355081.html

相关文章

  • PGSQL 查询哪些表要索引,查表行数
    转自:(96条消息)PostgreSQLindexmonitor——监控哪些表需要创建索引_foucus、的博客-CSDN博客在数据库的使用过程中,可能某些表随着数据量的增大而因为没有索引仍旧使用的全表扫描,我们可以使用下列脚本来监控哪些大表上需要创建索引。1、监控哪些表需要创建索引SELECTr......
  • pgsql根据日期查询错误:timestamp without time zone >= character varying
    最近工作中使用到pgsql数据库,使用日期传参查询时提示Causedby:org.postgresql.util.PSQLException:错误:操作符不存在:date>=charactervarying错误主要原因就是pgsql使用string类型参数去查询的话不会自动进行转换,而mysql并没有这种问题。解决方式也很简单,我们将字符串类......
  • 数据结构与算法跳表之java实现
    跳表一个有序链表的搜索、添加、删除的平均时间复杂度都为O(n),那么能否利用二分搜索优化有序链表,将搜索、添加、删除的平均时间复杂度降低至O(logn)呢?链表没有像数组那样的高效随机访问(O(1)时间复杂度),所以不能像有序数组那样直接进行二分搜索优化。那有没有其他办法让有序链表的搜......
  • 服务器安装pgsql14.2
    1.0wgethttps://ftp.postgresql.org/pub/source/v14.2/postgresql-14.2.tar.gz--no-check-certificate2.0tar-zxvfpostgresql-14.2.tar.gz3.0mvpostgresql-14.2/postgresql4.0cdpostgresql5.0./configure--prefix=/usr/local/postgresql【在执行./configu......
  • mac 环境下 启动postgrep 报错 "/tmp/.s.PGSQL.5432" failed: No such file or direc
    报错截图:解决方案:使用重新启动,postgrep服务:brewservicesrestartpostgresql......
  • 线性表之单链表
    定义初始化单链表尾插法建立单链表--正向建立单链表头插法建立单链表单链表的查找按位查找,返回第i个元素(带头结点)按值查找,找到元素值为x的点......
  • 线性表之静态链表实现(数组cur实现)
    main.cpp#include"StaticList.h"intmain(){StaticListSL;InitSList(SL);for(inti=0;i<5;++i){Insert(SL,'A'+i);}ShowSList(SL);DeleteSList(SL);ShowSList(SL);return0;}Stati......
  • 线性表之单循环链表实现
    main.cpp#include"SCList.h"intmain(){Listmylist;InitList(mylist);intselect=1;ElemTypeItem;Node*p=NULL;while(select){printf("************************************\n");printf("......
  • 表相关操作2-完整约束、表之间关系
    目录六、表完整性约束1.介绍2.unsigned、zerofill3.notnull4.default5.unique6.primarykey7.auto_increment8.foreignkey表与表之间建关系外键字段建立一对多关系级联更新,级联删除多对多的表关系一对一关系七、修改表ALTERTABLE六、表完整性约束1.介绍约束条件就是在数据......
  • 分库分表之ShardingSphere
    为什么要分库分表用户请求量太大单服务器TPS、内存、IO都是有上限的,需要将请求打散分布到多个服务器。单库数据量太大单个数据库处理能力有限;单库所在服务器的磁盘空间有限;单库上的操作IO有瓶颈。单表数据量太大查询、插入、更新操作都会变慢,在加字段、加......