PostgreSQL:記憶體結構
在 Postgresql 中,記憶體大概被分為兩塊
-
Local memory area:為每一個 backend process 分配的記憶體
-
Shared memory area:PostgreSQL server 所有的 backgroud process 使用的記憶體
Local memory area
每一個backend process 都會分配一塊local memory area, 每一塊區域又分為三個子區域 ,見下表
sub-area | description |
---|---|
work_mem | 使用者在 sort、distinct、merge join、hash join 的時候會用到這塊區域 |
maintenance_work_mem | vacuum、reindex、create index 等操作會用到這塊區域 |
temp_buffers | 儲存臨時表會用到這塊區域 |
Shared memory area
這塊區域在伺服器啟動的時候分配,這塊區域也是分為好幾個子區域,見下面介紹
sub-area | description |
---|---|
shared buffer pool | 將表或者索引的 page 從磁碟載入到 shared buffer,然後在shared buffer 操作 |
WAL buffer | 在服務端出現問題的時候,確保資料不會丟失,在寫到磁碟之前,wal buffer 是 wal log 的快取區域 |
commit log | 為了併發控制所有事物的狀態的保持而分配的區域 |
另外,Postgresql 還分配一些其他的記憶體區域:
-
為訪問控制分配的子區域,比如輕量級鎖,共享或者專有鎖。
-
為其他 backgroud process 提供的子區域,比如檢查點、vacuum。
-
為事物處理提供的子區域,比如事物中的儲存點,和二階段事物提交。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31490526/viewspace-2716598/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Postgresql資料庫體系結構-程式和記憶體結構SQL資料庫記憶體
- 記憶體結構記憶體
- JVM記憶體結構JVM記憶體
- 結構體記憶體對齊結構體記憶體
- MySQL整體架構與記憶體結構MySql架構記憶體
- 理解JVM(一):記憶體結構JVM記憶體
- JVM(七):JVM記憶體結構JVM記憶體
- JVM記憶體結構劃分JVM記憶體
- JVM記憶體結構、Java記憶體模型和Java物件模型JVM記憶體Java模型物件
- PostgreSQL-PG的體系架構之記憶體管理(三)SQL架構記憶體
- JVM的基本結構和JVM的記憶體結構JVM記憶體
- JVM學習(一)——記憶體結構JVM記憶體
- Oracle OCP(39):Database 記憶體結構OracleDatabase記憶體
- JVM之記憶體結構詳解JVM記憶體
- JVM及其記憶體結構劃分JVM記憶體
- C++ struct結構體記憶體對齊C++Struct結構體記憶體
- c 結構體記憶體對齊詳解結構體記憶體
- STM32記憶體結構介紹和FreeRTOS記憶體分配技巧記憶體
- Redis 雜湊結構記憶體模型剖析Redis記憶體模型
- Oracle - 資料庫的記憶體結構Oracle資料庫記憶體
- 瀚高資料庫記憶體結構資料庫記憶體
- PostgreSQL體系結構概述SQL
- JVM讀書筆記之java記憶體結構JVM筆記Java記憶體
- 淺談JVM記憶體結構 和 Java記憶體模型 和 Java物件模型JVM記憶體Java模型物件
- 【JVM】堆體系結構及其記憶體調優JVM記憶體
- InfluxDB中的inmem記憶體索引結構解析UX記憶體索引
- 深入理解 JVM 之 JVM 記憶體結構JVM記憶體
- Oracle面試寶典-記憶體結構篇Oracle面試記憶體
- JVM元空間Metaspace的記憶體結構JVM記憶體
- C 語言結構體記憶體佈局問題結構體記憶體
- C語言結構體記憶體佈局問題C語言結構體記憶體
- struct結構體大小的計算(記憶體對齊)Struct結構體記憶體
- 讀書筆記】《PostgreSQL指南-內幕探索》-2.程式和記憶體架構筆記SQL記憶體架構
- 2024.04.18每日收穫之聯合體結構體記憶體分配結構體記憶體
- 解析記憶體中的高效能圖結構記憶體
- MySQL底層概述—1.InnoDB記憶體結構MySql記憶體
- 詳細瞭解 InnoDB 記憶體結構及其原理記憶體
- JVM虛擬機器記憶體結構簡析JVM虛擬機記憶體