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

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 80|回复: 0
打印 上一主题 下一主题

深入浅出 Shared Buffers

[复制链接]
跳转到指定楼层
楼主
发表于 2026-3-1 17:39:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
因为 PostgreSQL 不是线程模型 (截止 PG18,关于多线程的讨论也一直在进行中),所以高度依赖共享内存来共享状态和数据,每个连接、每个后台任务都是独立 OS 进程,进程间靠共享内存通信,要理解 Shared Buffers ,必须先理解 PostgreSQL 为什么需要一块"所有进程都能看到的内存区域"。

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

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2026-4-17 22:17 , Processed in 0.268332 second(s), 23 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表