postgres 数据库架构介绍--1
簡介
?? postgres 數(shù)據(jù)庫是目前最流行的開源關(guān)系型數(shù)據(jù)庫之一,其具有豐富的數(shù)據(jù)類型、多版本并發(fā)控制、同步/異步流復(fù)制、嵌套事務(wù)和預(yù)寫式日志等功能,廣泛地應(yīng)用于金融、物流、制造/電信等領(lǐng)域
基本概念
1 數(shù)據(jù)庫cluster[邏輯]
database cluster:包含各種數(shù)據(jù)庫對(duì)象,如表,索引,視圖,索引,函數(shù)和序列等
2 數(shù)據(jù)庫cluster [物理]
| PG_VERSION | 包含postgres的版本號(hào)信息 |
| pg_hba.conf | 客戶端認(rèn)正配置文件 |
| pg_ident.conf | postgres 用戶名映射文件 |
| postgresql.conf | postgres 配置文件,包含各種參數(shù)設(shè)置:共享內(nèi)存大小,最大連接數(shù)等 |
| postgresql.auto.conf | 更改系統(tǒng)時(shí)存放各種配置參數(shù)信息 |
| base | 創(chuàng)建數(shù)據(jù)庫所在目錄 |
| global | 全局系統(tǒng)表,pg_class和pg_control等 |
| pg_xact | 事務(wù)提交狀態(tài)日志 |
| pg_dynshmem | 記錄動(dòng)態(tài)共享內(nèi)存信息 |
| pg_logical | 存放邏輯解析過程中生成的數(shù)據(jù) |
| pg_wal | 存放預(yù)寫式日志 |
| pg_stat | 統(tǒng)計(jì)信息的持久性文件 |
| pg_subtrans | 存放子事務(wù)狀態(tài)日志 |
| pg_twophase | 存放兩階段提交事務(wù)狀態(tài)信息 |
架構(gòu)介紹
1 進(jìn)程架構(gòu)
??postgres數(shù)據(jù)庫是一個(gè)多進(jìn)程架構(gòu),采用典型服務(wù)端–客戶端結(jié)構(gòu),進(jìn)程間通過共享內(nèi)存進(jìn)行通信。其中最重要的兩個(gè)進(jìn)程server process (postmaster)和backend process. postmaster 負(fù)責(zé)整個(gè)系統(tǒng)的啟動(dòng)與關(guān)閉,管理整個(gè)數(shù)據(jù)庫集群,同時(shí)接收來自客戶端的連接請求,后fork出一個(gè)服務(wù)進(jìn)程backend process. postmaster 為客戶端提供服務(wù),執(zhí)行客戶端的各種命令。
??此外postmaster進(jìn)程還啟動(dòng)一些輔助進(jìn)程共同實(shí)現(xiàn)數(shù)據(jù)庫的各種功能。
如果許多客戶端(如WEB應(yīng)用程序)頻繁地重復(fù)與PostgreSQL服務(wù)器的建立連接與斷開,就會(huì)增加建立連接和創(chuàng)建后端進(jìn)程的成本,因?yàn)镻ostgreSQL沒有實(shí)現(xiàn)本地連接池特性。這種情況會(huì)對(duì)數(shù)據(jù)庫服務(wù)器的性能產(chǎn)生負(fù)面影響。要處理這種情況,通常使用池中間件(pgbouncer或pgpool-II)。
2 共享內(nèi)存架構(gòu)
??在postgres數(shù)據(jù)庫中,內(nèi)存分為共享內(nèi)存和私有內(nèi)存[backend process]。
私有內(nèi)存主要由temp_buffers、work_mem和maintenance_work_mem組成
| temp_buffers | 存放執(zhí)行過程中的臨時(shí)數(shù)據(jù)或者臨時(shí)表 |
| work_mem | 此區(qū)域用于ORDER by和DISTINCT操作,以及各種joins操作 |
| maintenance_work_mem | 此區(qū)域用于執(zhí)行各種維護(hù)性操作如 VACUUM、REINDEX操作 |
共享內(nèi)存包括共享緩沖池、WAL buffer、SLRU<clog和subtrans日志>
| shared buffer pool | 存放table和index數(shù)據(jù)頁 |
| WAL buffer | 用于存放WAL日志,加載或者持久化 |
| SLRU | (子)事務(wù)狀態(tài)日志緩沖區(qū),包括CLOG和SUBSTRANS |
參考:https://www.interdb.jp/pg/pgsql01.html
總結(jié)
以上是生活随笔為你收集整理的postgres 数据库架构介绍--1的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 弘辽科技:淘宝平台如何处理商家sku作弊
- 下一篇: Sping介绍