第一章 PostgresQL系统概述
1. 代码结构
主要目录及用途:
- Bootstrap:用于支持Bootstrap运行模式,该模式主要用来创建初始的模版数据库;
- Main:主程序模块,它负责将控制权转到Postmaster进程或Postgres进程;
- Postmaster:监听用户请求的守护进程,并控制Postgres进程的启动和终止;
- Libpq:C/C++的库函数,处理与客户端间的通信,几乎所有的模块都依赖它;
- Tcop:Postgres服务进程的主要处理部分,它调用Parser、Optimizer、Executor和Commands中的函数来执行客户端提交的查询;
- Parser:编译器,将SQL查询转化为内部查询树;
- Optimizer:优化器,根据查询树创建最优的查询路径和查询计划;
- Executor:执行器,执行来自Optimizer的查询计划;
- Commands:执行非计划查询的SQL命令,如创建表命令;
- Catalog:系统表操作,包含用于操作系统表的专用函数;
- Storage:管理各种类型的存储系统(如磁盘、闪存等);
- Access:提供各种存取方法,支持堆、索引等对数据的存取;
- Nodes:定义系统内部所用到的节点、链表等结构,以及处理这些结构的函数;
- Utils:各种支持函数,如错误报告、各种初始化操作等;
- Regex:正规表达式库及相关函数,用于支持正规表达式处理;
- Rewrite:查询重写,根据规则系统对查询进行重写;
- Initdb:初始化数据库集簇;
- TSearch:全文检索;
- Psql:数据库交互工具;
- Port:平台兼容性处理相关的函数。
2. PostgreSQL模块调用关系
3. PostgreSQL常用数据库命令