PG体系结构之内存结构

0    1056    5

Tags:

👉 本文共约5887个字,系统预计阅读时间或需23分钟。

内存结构

PostgreSQL的内存体系结构可以分为两大类:

  • Local memory area 本地内存区域——由每个后端进程分配供自己使用。
  • Shared memory area 共享内存区域——由PostgreSQL服务器的所有进程使用。

PG体系结构之内存结构

共享内存(Shared memory area)

共享内存区域由PostgreSQL服务器在启动时分配。这个区域也被划分为几个固定大小的子区域。

PG体系结构之内存结构

PostgreSQL启动后,会生成一块共享内存,用于做数据块的缓冲区,以便提高读写性能。WAL日志缓冲区和Clog缓冲区也存在共享内存中,除此之外还有全局信息比如进程、锁、全局统计等信息也保存在共享内存中。
其中最重要的组成部分是Shared Buffer和WAL Buffer。

√ Shared Buffer Pool
PostgreSQL将表和索引中的页面从持久存储加载到这里,并直接操作它们。Shared Buffer的目的是减少磁盘IO。为了达到这个目的,必须满足以下规则∶

  • 当需要快速访问非常大的缓存时(10G、100G等)

  • 如果有很多用户同时使用缓存,需要将内容尽量缩小

  • 频繁访问的磁盘块必须长期放在缓存中

    对应的设置参数为:shared_buffers

√ WAL Buffer
WAL Buffer是用来临时存储数据库变化的缓存区域。存储在WAL Buffer中的内容会根据提前定义好的时间点参数要求写入到磁盘的WAL文件中。为了保证数据不因服务器故障而丢失,PostgreSQL支持WAL机制。WAL data(也称XLOG records)是PostgreSQL中的事务日志;WAL buffer是WAL数据写入持久存储之前的缓冲区域。
在备份和恢复的场景下,WAL Buffer和WAL文件是极其重要的。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
PG体系结构之内存结构后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
验证码:
请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部