【PG體系結構】PG體系結構簡單說明
##pg 結構 --邏輯結構 --資料庫例項通常指資料庫集簇(database cluster),單個例項管理資料庫集合 --一個資料庫集簇包含使用者、資料庫,可為每個資料庫指定單獨的使用者,每個資料庫下面包含schemas(名稱空間),預設為public,每個schemas下面包含表、索引、檢視、序列等。 --物理結構 --資料檔案、引數檔案、控制檔案、資料庫執行日誌及預寫日誌 --可通過以下命令檢視目錄檔案,具體作用可參考《Postgresql實戰》98頁 tree -L 1 -d /pgdata/10/data --控制檔案位置 [postgres@pgtest global]$ pwd /pgdata/data/global [postgres@pgtest global]$ ls -l pg_control -rw------- 1 postgres postgres 8192 Dec 7 04:56 pg_control --資料檔案佈局 --oid,所有資料庫物件都有各自的物件識別符號(oid)進行內部管理,它們是無符號的4位元組整數,例如 select oid,datname from pg_database; select oid,relname,relkind from pg_class; --表空間,最大的邏輯儲存單位 --預設兩個表空間,pg_global表空間,目錄為global,儲存系統表;pg_default表空間的物理檔案位置在base目錄,是template0和template1資料庫的預設表空間, --建立表空間需要先建立目錄,表空間可以解決以後磁碟空不足問題、分配效能不同的磁碟上,提高資料庫效能 mkdir -p /pgdata/10/mytblspc create tablespace myspc location '/pgdata/10/mytblspc'; create table t(id int4) tablespace myspc; --資料檔案命名,對於表大小超出1g,pg會自動切分多個檔案,oid.順序號,真正管理表檔案的是pg_class的relfilenode --檢視錶的大小 select pg_size_pretty(pg_relation_size('tb1'::regclass)); --表檔案內部結構 --pg中,儲存在磁碟中的塊稱為Page,記憶體中的塊稱為Buffer,表和索引稱為Relation,行稱為Tuple。資料讀寫以Page為最小單位,Page預設8KB ##程式結構 --守護程式與服務程式 --postmaster程式主要職責 資料庫的啟停 監聽客戶端連線 為每個客戶端連線fork單獨的postgres服務程式 當服務程式出錯時進行修復 管理資料檔案 管理與資料庫執行相關的輔助程式 --輔助程式 background writer:bgwriter程式,搜尋共享緩衝池找到被修改的頁,並將它們從共享緩衝池刷出 autovacuum launcher: 自動清理回收垃圾程式 WAL writer: 定期將WAL緩衝區上的WAL資料寫入磁碟 statistics collector: 統計資訊收集程式 logging collector: 日誌程式,將訊息或者錯誤資訊寫入日誌 archiver:WAL歸檔程式 checkpointer:檢查點程式 ##記憶體結構 --本地記憶體主要給後端程式使用,主要三部分 work_mem: 當使用order by 或distinct會使用到 maintenance_work_mem: 維護操作,例如VACUUM REINDEX CREATE INDEX等操作 temp_buffers: 臨時表相關操作使用 --共享記憶體,在伺服器啟動時分配,由所有後端程式共同使用 shared buffer pool :PostgreSQL將表和索引頁面從持久儲存裝載到這裡,並直接操作它們 WAL buffer: WAL檔案持久化之前的緩衝區 CommitLog buffer:PostgreSQL 在Commit Log中儲存事務的狀態,並將這些狀態保留在共享記憶體緩衝區中,在整個事務處理過程中使用
database cluster--user、【database】--schema--table、index、view……
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29487349/viewspace-2374750/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PostgreSQL-PG體系結構之WAL(五)SQL
- 【PG體系結構】Postgresql 配置檔案詳解SQL
- 【PG結構】Postgresql資料庫資料目錄說明SQL資料庫
- Oracle MYSQL PG體系OracleMySql
- PostgreSQL-PG的體系架構之記憶體管理(三)SQL架構記憶體
- MySQL 體系結構MySql
- 【JVM體系結構】JVM
- BeanFactory體系結構Bean
- MongoDB 體系結構MongoDB
- Servlet 體系結構Servlet
- 3:Oracle體系結構(邏輯結構)Oracle
- HDFS的體系結構
- MySQL 一 體系結構MySql
- oracle體系結構(轉)Oracle
- PostgreSQL體系結構概述SQL
- 1、JVM體系結構JVM
- 【PG效能】Postgresql效能相關(作業系統及資料庫簡單說明)SQL作業系統資料庫
- 指令集體系結構_計算機體系結構:指令程式碼計算機
- 軟體體系結構評估
- 作業系統體系結構作業系統
- Linux系統結構說明及用途介紹Linux
- Postgresql資料庫體系結構-程式和記憶體結構SQL資料庫記憶體
- 【Oracle體系結構】 Oracle19C 系統結構介紹Oracle
- 網路管理體系結構
- 0718_oracle 體系結構Oracle
- 磁碟知識體系結構
- MySQL入門--體系結構MySql
- 計算機體系結構計算機
- MySQL體系結構概覽MySql
- 論軟體體系結構的演化
- (計算機體系結構)MIPS指令集結構計算機
- DKhadoop框架結構說明Hadoop框架
- 微機結構說明
- flowable 表結構說明
- DSSA特定領域軟體體系結構
- 架構知識體系總結架構
- Oracle OCP(37):Database 體系結構OracleDatabase
- java中serverlet的體系結構JavaServer