PG体系结构(二)

太阳3年前技术文章1157

二、逻辑架构

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体系结构(一)

PG体系结构(一)

一、进程结构PG数据库启动时会先启动一个主进程(9.3之前称为postmaster,9.3以后称为postgres server process),然后fork出一些辅助子进程(backend、bac...

PG的analyze与vacuum

analyze-统计信息用于收集表的统计信息,只会对表加读锁,不影响表上其它SQL并发执行,对于大表只会读取表中部分数据 vacuum-碎片回收标记旧版本行的信息为可用,以重复使用这部分空间 更新统计...

PG的锁(二)

四、死锁PostgreSQL自动检测死锁情况并会自动回滚其中一个事务进行处理,从而其他事务完成。db1=# select * from t1 where id in (1,2,3);  id | i...

pgbench 压测工具

pgbench 压测工具

一、基本参数pgbench工具是Postgres自带的一款轻量型基准压测工具。它自定义相关场景下脚本进行1.1 初始化参数参数含义-i / --initialize调用初始化模式-I init_ste...

PG的pg_stat_statements插件

pg_stat_statements可追踪一个服务器所执行的所有 SQL 语句的执行统计信息,可以用于统计数据库的资源开销,分析TOP SQL。一、插件安装1、编译安装进入postgresql源码目录...

PG的统计信息(三)

1.3 数据分布类统计信息1.3.1 pg_stats通过对pg_stats的查询,可以查看每个字段的数据分析统计信息,类似SQL Server的直方图,为优化器选择最佳执行计划提供依据,pg_sta...

发表评论    

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