postgresql系列之體系結構

2021-08-31 21:45:08 字數 2052 閱讀 1294

postgresql 資料庫是由一系列位於檔案系統上的物理檔案組成。在資料庫執行過程中,管理這些物理檔案。通常這些物理檔案稱為資料庫。

在postgresql中有乙個資料庫集簇(database cluster)的概念,它是指由單個postgresql伺服器例項管理的資料庫集合,組成資料庫集簇的這些資料庫使用相同的全域性配置檔案和監聽埠、公用程序和記憶體結構

1.1 邏輯儲存結構

資料庫本身也是資料庫物件,乙個資料庫集簇可以包含多個database、多個user。每個database以及database中的所有物件都有他們的所有者即user.

建立乙個database時會為這個database建立乙個名為public的預設schema。每個database可以有多個schema。 可以將schema理解為命名空間。不同的schema可以有相同的table、index、view等。

1.2 物理儲存結構

資料庫的檔案預設儲存在initdb時建立的資料庫目錄中。

目錄用途

base

包含每個資料庫對應的子目錄的子目錄

檔案用途

pg_version

postgresql主版本號檔案

pg_hba.conf

客戶端認證控制檔案

postgresql.conf

引數檔案

1.2.1 資料檔案布局

(oid)

postgresql中的所有資料庫物件都由各自的物件識別符號(oid)進行內部管理,它們是無符號的4個位元組整數。

資料庫的oid儲存在pg_database系統表中。

資料庫中的表、索引、序列等物件的oid儲存在pg_class系統表中:

(二)、表空間在postgresql中最大的邏輯儲存單位是表空間,資料庫中建立的物件都儲存在表空間中。在建立資料庫物件時,可以指定資料庫物件的表空間,如果不指定則使用預設。

在初始化資料庫目錄時會自動建立pg_defaultpg_global兩個表空間。

(三)、表檔案內部結構

postgresql中,將儲存在磁碟中的塊稱為page,而將記憶體中的塊稱為buffer。 表和索引稱為relation,行稱為tuple。資料的讀寫是以page為最小單位,每個page預設大小為8kb。 在編譯postgresql時指定blcksz大小決定page的大小。每個表檔案由多個blcksz位元組大小的page組成,每個page包含若干tuple.對於i/o效能較好的硬體,並且以分析為主的資料庫,適當增加blcksz大小可以小幅度提公升資料庫效能。

當從資料庫中檢索資料時有兩種典型的訪問方式:順序掃瞄和b樹索引掃瞄。

PostgreSQL資料庫系列之十二 許可權管理

當初始化pg資料庫後,它自動有會有乙個超級使用者,通常這個超級使用者的名稱與初始化pg資料庫時的作業系統使用者名稱相同。比如你在windows作業系統裡以administrator管理員部署,那麼pg資料庫也將會有乙個administrator 大小寫嚴格區分 超級使用者作為超級管理員。通常來說,d...

postgresql之儲存過程

特性 儲存過程舉例 1 引數列表只包含函式輸入引數,不包含輸出引數 儲存過程定義 create or replace function add a integer,b numeric returns numeric as select a b language sql 呼叫方法 select add...

第二章 PostgreSQL程序和記憶體體系結構

悄悄放一張 postgresql運維技術 本章總結了postgresql的程序架構和記憶體架構。postgresql是乙個客戶端 伺服器型別的關聯式資料庫管理系統,具有多程序架構,執行在單個主機上。多個程序協同管理乙個資料庫集群通常被稱為 postgresql server 它包含以下型別的程序 b...