PostgreSQL 内存结构简介

作者:瀚高PG实验室 (Highgo PG Lab)- 天蝎座

 

共享内存:

 

如上图所示,PG启动后,会生成一块共享内存,共享内存主要用做数据块的缓冲区,以便提高读写性能。WAL日志缓冲区和CLOG缓冲区也存在共享内存中。除此以外还有一些全局信息也保存在共享内存中,如进程信息、锁的信息、全据统计信息,等等。PG9.3之前的版本与oralce数据库一样,都是使用“System V”类型的共享内存,但到PG9.3之后,PG使用“mmap()”方式的共享内存。使用这种共享内存的好处是不再需要配置“System V”共享内存的内核参数“kernel.shmmax”和“kernel.shmall”,就能使用较大的共享内存。

本地内存:

       后台服务进程除访问共享内存外,还会申请一些本地内存,以便暂存一些不需要全局存储的数据。这些内存缓冲区主要有以下几类:

① 临时缓冲区: 用于访问临时表的本地缓冲区

② work_mem: 内部排序操作和Hash表在临时磁盘文件之前使用的内存缓冲区。

③ maintenance_work_mem: 在维护性操作(比如 VACUUM、CREATE INDEX和ALTER TABLE ADD FOREIGN KEY等)中使用的内存缓冲区。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值