日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

postgres 数据库架构介绍--1

發布時間:2024/3/26 数据库 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 postgres 数据库架构介绍--1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介

?? postgres 數據庫是目前最流行的開源關系型數據庫之一,其具有豐富的數據類型、多版本并發控制、同步/異步流復制、嵌套事務和預寫式日志等功能,廣泛地應用于金融、物流、制造/電信等領域

基本概念

1 數據庫cluster[邏輯]
database cluster:包含各種數據庫對象,如表,索引,視圖,索引,函數和序列等

2 數據庫cluster [物理]

filesdescription
PG_VERSION包含postgres的版本號信息
pg_hba.conf客戶端認正配置文件
pg_ident.confpostgres 用戶名映射文件
postgresql.confpostgres 配置文件,包含各種參數設置:共享內存大小,最大連接數等
postgresql.auto.conf更改系統時存放各種配置參數信息
subdirectoriesdescription
base創建數據庫所在目錄
global全局系統表,pg_class和pg_control等
pg_xact事務提交狀態日志
pg_dynshmem記錄動態共享內存信息
pg_logical存放邏輯解析過程中生成的數據
pg_wal存放預寫式日志
pg_stat統計信息的持久性文件
pg_subtrans存放子事務狀態日志
pg_twophase存放兩階段提交事務狀態信息

架構介紹

1 進程架構
??postgres數據庫是一個多進程架構,采用典型服務端–客戶端結構,進程間通過共享內存進行通信。其中最重要的兩個進程server process (postmaster)和backend process. postmaster 負責整個系統的啟動與關閉,管理整個數據庫集群,同時接收來自客戶端的連接請求,后fork出一個服務進程backend process. postmaster 為客戶端提供服務,執行客戶端的各種命令。
??此外postmaster進程還啟動一些輔助進程共同實現數據庫的各種功能。

  • background writer:后臺寫進程,負責將緩沖池的臟頁數據寫回磁盤,
  • checkpointer:檢查點,每隔一定周期將臟頁刷盤,包括共享緩沖池和SLRU臟數據
  • autovacuum:自動清理進程,用于回收被刪除元組空間,避免數據文件無限膨脹
  • WAL writer: WAL寫進程,負責將wal buffer 刷寫至磁盤,緩解業務高峰時日志的并發寫入,對數據庫性能造成影響
  • statistics collector:信息收集進程,負責收集數據庫系統運行的統計信息,主要用于查詢優化時的代價估算
  • pgArch:日志歸檔進程,負責將WAL日志進行歸檔備份,加強數據庫的高可靠性和高可用性,防止數據意外丟失。

  • 如果許多客戶端(如WEB應用程序)頻繁地重復與PostgreSQL服務器的建立連接與斷開,就會增加建立連接和創建后端進程的成本,因為PostgreSQL沒有實現本地連接池特性。這種情況會對數據庫服務器的性能產生負面影響。要處理這種情況,通常使用池中間件(pgbouncer或pgpool-II)。

    2 共享內存架構
    ??在postgres數據庫中,內存分為共享內存和私有內存[backend process]。
    私有內存主要由temp_buffers、work_mem和maintenance_work_mem組成

    typedescription
    temp_buffers存放執行過程中的臨時數據或者臨時表
    work_mem此區域用于ORDER by和DISTINCT操作,以及各種joins操作
    maintenance_work_mem此區域用于執行各種維護性操作如 VACUUM、REINDEX操作

    共享內存包括共享緩沖池、WAL buffer、SLRU<clog和subtrans日志>

    typedescription
    shared buffer pool存放table和index數據頁
    WAL buffer用于存放WAL日志,加載或者持久化
    SLRU(子)事務狀態日志緩沖區,包括CLOG和SUBSTRANS

    參考:https://www.interdb.jp/pg/pgsql01.html

    總結

    以上是生活随笔為你收集整理的postgres 数据库架构介绍--1的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。