PG体系结构(二)

太阳2年前技术文章856

二、逻辑架构

graph TD
    A[database] -->B(schema)
    B -->C[表]
    B -->D[视图]
    B -->E[触发器]
    C -->F[索引]
 tablespace

三、内存结构

image.png

Postgres内存结构主要分为 共享内存 与 本地内存 两部分。共享内存为所有的 background process提供内存,本地内存为每个backend process提供内存。

3.1 共享内存

共享内存主要是数据块的缓冲区,将数据块读取到共享内存进行操作,提升数据库的读写性能。

  • shared buffer pool : 将表或者索引的page从磁盘加载到shared buffer,然后在shared buffer操作

  • WAL buffer : 在服务端出现问题的时候,确保数据不会丢失,在写到磁盘之前,wal buffer是wal log的缓存区域

  • commit log : 为了并发控制所有事物的状态的保持而分配的区域

3.2 本地内存

  • temp_buffers  : 临时缓存区, 存储临时表会用到这块区域

  • work_mem : 内部排序操作、distinct、hash join、merge join 等操作,在使用临时磁盘文件之前使用的内存缓存区

  • maintenance_work_mem : 一些维护性操作使用的内存缓存区,如:vacuum、create index、alter table的等操作会用到这部分内存空间


标签: PostgreSQL

相关文章

PG的统计信息(一)

一、统计信息1.1 PG统计信息概述pg的统计信息主要分为两种:第一类统计信息是是负载指标“统计信息”(Monitoring stats),通过stat collector进程进行实时采集更新的负载指...

PG体系结构(三)

PG体系结构(三)

四、物理结构4.1 软件安装目录bin             //二进制可执行文件 include         //头文件目录 lib             //动态库文件 share ...

REPMGR-PG高可用搭建(一)

REPMGR-PG高可用搭建(一)

PG高可用对比数据库复制的术语和定义这些术语和定义应该有助于讨论复制。在与其他Postgres开发人员进行了大量讨论之后,我编译了它们,但是这些定义应该是普遍可用的,并且也应该适用于其他RDBMS。复...

PG的锁(一)

一、表级锁1.1 表级锁模式常见锁模式以及应用场景:ACCESS SHARE :select操作获取该模式锁资源,通常情况下所有只读取不修改表的查询都会获取该模式锁资源ROW SHARE : sele...

PG的多版本并发控制(一)

PG的多版本并发控制(一)

一、 表系统字段几个比较重要概念1.1  tupletuple表示表中的数据行,在MySQL中用row表示。在表数据页中,主要分为普通的数据元祖和TOAST元祖。以下是一个普通数据元祖的结构,主要由三...

PG的多版本并发控制(三)

三、多版本并发控制3.1 常见多版本并发的实现方式第一种方式是,数据库仅保存最新版本数据,将发生变更的旧行版本数据写到其他地方如undo,当需要读取旧版本数据时,通过undo重构。oracle和MyS...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。