Skip to content

PostgreSQL

PostgreSQL 是开源的对象关系型数据库管理系统。它以完整事务语义和可扩展类型系统为基础,同时支持复杂查询、JSONB、全文检索、空间数据、分区、并行执行以及物理和逻辑复制。

理解 PostgreSQL 的关键不是记忆 SQL 方言,而是掌握几个相互关联的机制:进程与共享内存如何协作,堆表如何保存多版本行,VACUUM 为什么不可缺少,WAL 如何保证恢复,以及不同索引访问方法如何匹配数据类型和操作符。


文档目录

文档内容
产品特性数据类型、事务、扩展体系和适用边界
体系结构与物理存储数据库集群、进程、共享内存、PGDATA、页与 Relation Fork
MVCC 与 VACUUM行版本、快照、可见性、膨胀、冻结和自动清理
WAL 与单机可靠性WAL、检查点、崩溃恢复、归档、基础备份和 PITR
索引类型与结构B-tree、Hash、GiST、SP-GiST、GIN、BRIN 和索引设计
复制与高可用物理复制、逻辑复制、同步级别、故障切换和能力边界
分区与扩展声明式分区、分区裁剪、扩展、JSONB 与 PostGIS
优化器与执行计划统计信息、代价模型、扫描与连接方式、并行执行
SQL 语法入门以 MySQL 为参照的类型、增删改查、分页和 Upsert 差异

术语边界

术语含义
Instance正在运行的一组 PostgreSQL 服务进程及共享内存
Database Cluster同一个实例管理、共享一个数据目录的一组数据库,不等于高可用集群
DatabaseCluster 内相互隔离的一个数据库,连接建立时必须选择
Schema数据库内对象的命名空间
Relation表、索引、物化视图等具有存储或关系语义的对象
Extension以受管理方式安装的一组类型、函数、操作符、访问方法等对象

PostgreSQL 官方文档中的 database cluster 经常被误解为多节点集群。它首先是一个本地数据目录和其中多个数据库的集合;流复制、故障切换属于另一层部署架构。

参考资料


学习地图