PostgreSQL隨筆-對象標識符OID

總覽

在PostgreSQL中,對象標識符OID用來在整個數據集簇(initdb初始化的數據存儲區即爲數據集簇)中唯一地標識一個數據庫中的對象,這個對象可以是數據庫、表、索引、視圖、元祖、類型等。PostgreSQL內置了Oid類型表示OID,它本身時一個無符號整數。

分配策略

  • 通常從1開始
  • 首先一部分分配給了系統表相關的對象(如元祖、索引等),此外爲了擴展會保留一般部分OID,可以從系統表對應的頭文件中找到部分OID。
  • 用戶自定義是否需要元組,只需要使用WITH OIDS。
  • OID的分配由一個全局的OID計數器管理,並採用互斥鎖避免OID同時分配給多個對象,默認狀態下時用戶不設置OID。

注意事項

  • 主要用戶系統表內部作爲主鍵,最好不要用來作爲用戶數據的主鍵,因爲Oid由4個字節的int類型表示,有數量限制。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章