一、pg_class: 该系统表记录了数据表、索引(仍然需要参阅pg_index)、序列、视图、复合类型和一些特殊关系类型的元数据。注意:不是所有字段对所有对象类型都有意义。名字类型引用描述relnamename数据类型名字。relnamespaceoidpg_namespace.oid包含这个对象
selectoid,datnamefrompg_database;oid|datname|---+---+5|postgres|1|template1|4|template0| 数据库中的对象存储在各自的子目录中,pg_relation_filepath 函数可以用于查询对象的文件路径(相对于根目录): SELECTpg_relation_filepath('public.animal');pg_relation_filepath|---+base/5/73734| animal 是...
以系统表 pg_class为例,查看下postgres里各个对象(表、序列、索引 等)的oid pg_class 存储的都是这些对象的信息 postgres=# \d pg_class// 列出pg_class表的所有字段。Table"pg_catalog.pg_class"Column|Type|Modifiers---+---+---relname|name|notnullrelnamespace|oid|notnullreltype|oid|notnullreloft...
oid|id---+---32920|1032922|11(2rows) AI代码助手复制代码 由以上可以看出,oid是全局分配的。 表(包括toast表)、索引、视图的对象标识符就是系统表pg_class的oid字段的值,如下: mydb=#selectoid,relname,relkindfrompg_classwhererelnamelike't_'; oid|relname|relkind---+---+---32913|t1|r32916|t2...
1.oid oid是object identifier的简写,其相关的参数设置default_with_oids设置一般默认是false,或者创建表时指定with (oids=false),其值长度32bit,实际的数据库系统应用中并不能完全保证其唯一性; www.2cto.com 2.tableoid 是表对象的一个唯一标识符,可以和pg_class中的oid联合起来查看 3.xmin 默认排序(...
postgres=# select oid, relname, relfilenode,reltablespace from pg_class where relfilenode = 0 and relkind = 'r' order by reltablespace; oid | relname | relfilenode | reltablespace ---+---+---+--- 1247 | pg_type | 0 | 0 1255 | pg_proc | 0 | 0 1249 | pg...
postgres=#selectoid,relname,relfilenodefrompg_classwhererelname='t2'; oid|relname|relfilenode ---+---+--- 16808|t2|16811 (1row) postgres=#checkpoint; CHECKPOINT postgres=#\q movead@movead-PC:/h2/pgpgpg/bin$ ll ../data/base/12835/16808 ls: 无法访问'../data/base/12835...
可以看到 oid 虽然还是 16384,但是 relfilenode 变成了 16389。 2.3.2 内建函数pg_relation_filepath 内建函数pg_relation_filepath能够根据OID或名称返回关系对应的文件路径。比如下面的案例: 代码语言:sql 复制 select oid,relname,relfilenode from pg_class limit 10; 代码语言:sql 复制 oid | relname | rel...
PostgreSQL有两个视图各司其职,分别保存着不同类别的OID,其中pg_database保存数据库本身对象的OID,pg_class保存表、索引和序列等对象的OID。2 Relation 关系代表非数据库本身的数据库对象,包括表、视图、索引和toast等,不包括数据库本身。3 MVCC Multi-Version-Concurrency-Control是一种并发控制机制,数据库引擎...
pg_namespace 系统表pg_namespace存储命名空间 每个名字空间有独立的关系、类型等集合,但并不会相互冲突 pg_namespace中每一个元组都对应一个名字空间,每一个名字空间都被分配一个OID pg_tablespace pg_tablespace存储表空间信息,pg_tablespace在整个数据集簇中只有一份,即:同一个数据集簇内的所有数据库共享一个pg...