PG系統表之pg class

2021-10-24 04:57:55 字數 4085 閱讀 1113

pg_class記錄表、索引、序列、檢視等物件的資訊。

pg_class

名稱型別

引用描述

oidoid

行識別符號

relnamename

表、索引、檢視等的名字

relnamespaceoidpg_namespace.oid包含該關係的名字空間的oid

reltypeoidpg_type.oid可能存在的錶行型別所對應資料型別的oid(對索引為0,索引沒有pg_type項)

reloftypeoidpg_type.oid對於有型別的表,為底層組合型別的oid,對於其他所有關係為0

relowneroidpg_authid.oid關係的擁有者

relamoidpg_am.oid如果這是乙個表或者索引,表示索引使用的訪問方法(堆、b樹、雜湊等)

relfilenodeoid

該關係的磁碟檔案的名字,0表示這是乙個「對映」關係,其磁碟檔名取決於低層狀態

reltablespaceoidpg_tablespace.oid該關係所儲存的表空間。如果為0,使用資料庫的預設表空間。(如果關係無磁碟檔案時無意義)

relpagesint4

該錶磁碟表示的尺寸,以頁面計(頁面尺寸為blcksz)。這只是乙個由規劃器使用的估計值。它被vacuumanalyze以及一些ddl命令(如create index)所更新。

reltuplesfloat4

表中的存活行數。這只是乙個由規劃器使用的估計值。它被vacuumanalyze以及一些ddl命令(如create index)所更新。

relallvisibleint4

在表的可見性對映表中被標記為全可見的頁數。這只是乙個由規劃器使用的估計值。它被vacuumanalyze以及一些ddl命令(如create index)所更新。

reltoastrelidoidpg_class.oid與該錶相關聯的toast表的oid,如果沒有則為0。toast表將大屬性「線外」儲存在乙個二級表中。

relhasindexbool

如果這是乙個表並且其上建有(或最近建有)索引則為真

relissharedbool

如果該錶在集簇中的所有資料庫間共享則為真。只有某些系統目錄(如pg_database)是共享的。

relpersistencechar

p= 永久表,u= 無日誌表,t= 臨時表

relkindchar

r= 普通表,i= 索引,s= 序列,t= toast表,v= 檢視,m= 物化檢視,c= 組合型別,f= 外部表,p= 分割槽表,i= 分割槽索引

relnattsint2

關係中使用者列的數目(系統列不計算在內)。在pg_attribute中必須有這麼多對應的項。另請參閱pg_attribute.attnum

relchecksint2

表上check約束的數目,參見pg_constraint目錄

relhasrulesbool

如果表有(或曾有)規則則為真,參見pg_rewrite目錄

relhastriggersbool

如果表有(或曾有)觸發器則為真目錄

relhassubclassbool

如果表或者索引有(或曾有)任何繼承子女則為真

relrowsecuritybool

如果表上啟用了行級安全性則為真,參見pg_policy目錄

relforcerowsecuritybool

如果行級安全性(啟用時)也適用於表擁有者則為真,參見pg_policy目錄

relispopulatedbool

如果表已被填充則為真(對於所有關係該列都為真,但對於某些物化檢視卻不是)

relreplidentchar

用來為行形成「replica identity」的列:d= 預設 (主鍵,如果存在),n= 無,f= 所有列i= 索引的indisreplident被設定或者為預設

relispartitionbool

如果表或索引是乙個分割槽,則為真

relrewriteoidpg_class.oid對於在要求表重寫的ddl操作期間被寫入的新關係,這個域包含原始關係的oid,否則為0。那種狀態僅在內部可見,對於乙個使用者可見的關係這個域應該從不包含不是0的值。

relfrozenxidxid

在此之前的所有事務id在表中已經被替換為乙個永久的(「凍結的」) 事務id。這用於跟蹤表是否需要被清理,以便阻止事務id回卷或者允許pg_xact被收縮。如果該關係不是乙個表則為0(invalidtransactionid)。

relminmxidxid

在此之前的多事務id在表中已經被替換為乙個事務id。這被用於跟蹤表是否需要被清理,以阻止 多事務id回卷或者允許pg_multixact被收縮。如果關係不是乙個表則 為0(invalidmultixactid)。

relaclaclitem

訪問許可權

reloptionstext

訪問方法相關的選項,以「keyword=value」字串形式

relpartboundpg_node_tree

如果表示乙個分割槽(見relispartition),分割槽邊界的內部表達

pg表中的系統列

oid 物件id,預設是隱藏不顯示的,在建立表的時候使用了with oids會顯示這個列 select oid.from t test 錯誤 error column oid does not exist sql 狀態 42703 字元 8 create table t test id intege...

PG的規則系統

規則系統 規則系統 查詢重寫規劃的系統。從使用上說,規則系統上的一些功能也可以通過函式和觸發器來實現,但規則系統與觸發器完全不同,它是在執行前把使用者發過來的sql通過內部的規則定義改變成另乙個sql後再執行的一種方式 select規則 pg檢視是通過select規則實現的,建立檢視的命令 crea...

Ceph之PG數調整

目錄pg,placement groups。crush先將資料分解成一組物件,然後根據物件名稱 複製級別和系統中的pg數等資訊執行雜湊操作,再將結果生成pg id。可以將pg看做乙個邏輯容器,這個容器包含多個物件,同時這個邏輯物件對映之多個osd上。如果沒有pg,在成千上萬個osd上管理和跟蹤數百萬...