看圖學(xué)習(xí)PostgreSQL數(shù)據(jù)庫體系架構(gòu)
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
PostgreSQL 是客戶端/服務(wù)器關(guān)系數(shù)據(jù)庫管理系統(tǒng) (RDMS),今天我們就看圖體系化的學(xué)習(xí)下PostgreSQL的體系架構(gòu),并且我會和Oracle做一下對比,幫助大家加深印象。 1.總體架構(gòu)整體包括內(nèi)存區(qū)域、配置文件、服務(wù)進程、磁盤存儲,同一臺物理服務(wù)器中可以運行多套實例,相互之間通過各自所服務(wù)的集簇的端口號來區(qū)分,很有特點的就是PG使用兩級緩存來提高數(shù)據(jù)庫的I/O效率。 2.物理結(jié)構(gòu)PostgreSQL的數(shù)據(jù)目錄,其中保存著配置文件、數(shù)據(jù)文件、事務(wù)日志和WAL日志等重要文件,所有用戶創(chuàng)建的數(shù)據(jù)文件和初始配置文件都可以在數(shù)據(jù)目錄中找到,在PG中一切皆目錄。 3.邏輯結(jié)構(gòu)在PostgreSQL中,數(shù)據(jù)庫本身也是數(shù)據(jù)庫對象,在邏輯上彼此分離。所有其他數(shù)據(jù)庫對象(如表、索引等)都屬于各自的數(shù)據(jù)庫。 上面左邊是Oralce的邏輯架構(gòu),右邊是PG的邏輯架構(gòu),很明顯了吧! 內(nèi)存結(jié)構(gòu)分為共享內(nèi)存、本地內(nèi)存,類似于Oracle的SGA和PGA。 本地內(nèi)存區(qū)域(Local mermory area):每個后端進程分配供自己使用(用戶服務(wù)) 共享內(nèi)存區(qū)域 (Shared mermory area):服務(wù)器所有的進程使用 shared buffer pool類似于Oracle的database buffer cache。其大小由shared_buffers參數(shù)決定。 WAL buffer其大小由wal_buffers參數(shù)決定。類似于Oracle的log buffer。 PostgreSQL數(shù)據(jù)庫的進程可以分為三類:后臺進程、后端進程或叫服務(wù)器進程、客戶端進程或用戶進程。 PostgreSQL數(shù)據(jù)庫使用雙緩存寫數(shù)據(jù),shared_buffer + OS page cache,下圖是PG與OS內(nèi)存交互的過程。 PostgreSQL的雙緩存落盤技術(shù)通常是指數(shù)據(jù)庫系統(tǒng)中同時使用兩級緩存來提高數(shù)據(jù)庫的I/O效率。一級緩存是數(shù)據(jù)庫緩沖區(qū)緩存,二級緩存可以是操作系統(tǒng)的文件系統(tǒng)緩存或者SSD緩存。 該文章在 2024/10/8 20:39:09 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |