重庆思庄Oracle、KingBase、PostgreSQL、Redhat认证学习论坛

标题: 深入浅出 Shared Buffers [打印本页]

作者: mahan    时间: 2026-3-1 17:39
标题: 深入浅出 Shared Buffers
因为 PostgreSQL 不是线程模型 (截止 PG18,关于多线程的讨论也一直在进行中),所以高度依赖共享内存来共享状态和数据,每个连接、每个后台任务都是独立 OS 进程,进程间靠共享内存通信,要理解 Shared Buffers ,必须先理解 PostgreSQL 为什么需要一块"所有进程都能看到的内存区域"。

Linux 借助 tmpfs 提供共享内存语义;PostgreSQL 早期用 SysV,共享内存,后来从 9.3 开始默认转向基于 mmap 的 POSIX 共享内存。简而言之,PG 的 shared buffers 是数据库层逻辑,但底层承载它的,仍然是 Linux 的虚拟内存与映射机制。

8744969a4088b97a3c.png
登录/注册后可看大图