本文分享自天翼云开发者社区@《PostgreSQL:内存结构》,作者: 我是小朋友
在 Postgresql 中,内存大概被分为两块 Local memory area:为每一个 backend process 分配的内存 Shared memory area:PostgreSQL server 所有的 backgroud process 使用的内存
Local memory area 每一个backend process 都会分配一块local memory area, 每一块区域又分为三个子区域 ,见下表
Shared memory area 这块区域在服务器启动的时候分配,这块区域也是分为好几个子区域,见下面介绍
另外,Postgresql 还分配一些其他的内存区域: 为访问控制分配的子区域,比如轻量级锁,共享或者专有锁。 为其他 backgroud process 提供的子区域,比如检查点、vacuum。 为事物处理提供的子区域,比如事物中的保存点,和二阶段事物提交。