PG内核解读-第2节PostgreSQL体系结构

发布网友 发布时间:2024-10-24 08:56

我来回答

1个回答

热心网友 时间:21小时前

本篇内容是关于PostgreSQL体系结构的深入解析,由阿里云数据库开源社区Maintainer于巍(花名漠雪)分享。文章分为三个部分:系统表、初始化启动查询流程和辅助进程。

1. PostgreSQL系统表
系统表,即database catalog,存储数据库实例元数据,如表、视图定义。系统表如information_schema提供数据库信息,如表结构,可通过SQL标准命令访问。设计系统时,首要设计的便是系统表,大部分在数据库创建时复制自模版,少数为全局共享。

用户可通过命令如'\d+pg_class'查看表信息,oid用于标识数据库对象,如表、视图,由系统表中的隐藏列表示。启动时需建立缓存系统表信息,如SysCache和RelCache。

2. 初始化、启动、查询流程
初始化阶段,通过genbki.pl生成postgres.bki,然后创建目录并使用BKI脚本生成templatel数据库。PostgreSQL有Postmaster、bootstrap和single三种启动模式,启动后接收用户请求,建立backend处理,包括内存管理、信号处理和配置加载。

查询流程中,用户连接通过Interface Library到达Postmaster,然后解析SQL,优化执行计划,最后将结果返回给客户端。

3. PostgreSQL辅助进程
PostgreSQL的辅助进程包括postmaster(服务进程)、Syslogger(日志收集)、bgwriter(脏页写入)、walwriter(预写式日志写入)和pgarch(归档)。autovacuum负责清理死元组,pgstat收集统计信息供查询优化。

例如,用户可通过命令查看表命中率、大小和SQL调用耗时,以及维护系统表和数据目录的初始化过程。

热心网友 时间:21小时前

本篇内容是关于PostgreSQL体系结构的深入解析,由阿里云数据库开源社区Maintainer于巍(花名漠雪)分享。文章分为三个部分:系统表、初始化启动查询流程和辅助进程。

1. PostgreSQL系统表
系统表,即database catalog,存储数据库实例元数据,如表、视图定义。系统表如information_schema提供数据库信息,如表结构,可通过SQL标准命令访问。设计系统时,首要设计的便是系统表,大部分在数据库创建时复制自模版,少数为全局共享。

用户可通过命令如'\d+pg_class'查看表信息,oid用于标识数据库对象,如表、视图,由系统表中的隐藏列表示。启动时需建立缓存系统表信息,如SysCache和RelCache。

2. 初始化、启动、查询流程
初始化阶段,通过genbki.pl生成postgres.bki,然后创建目录并使用BKI脚本生成templatel数据库。PostgreSQL有Postmaster、bootstrap和single三种启动模式,启动后接收用户请求,建立backend处理,包括内存管理、信号处理和配置加载。

查询流程中,用户连接通过Interface Library到达Postmaster,然后解析SQL,优化执行计划,最后将结果返回给客户端。

3. PostgreSQL辅助进程
PostgreSQL的辅助进程包括postmaster(服务进程)、Syslogger(日志收集)、bgwriter(脏页写入)、walwriter(预写式日志写入)和pgarch(归档)。autovacuum负责清理死元组,pgstat收集统计信息供查询优化。

例如,用户可通过命令查看表命中率、大小和SQL调用耗时,以及维护系统表和数据目录的初始化过程。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com