跳到主要内容

PostgreSQL 知识体系概览

问题

PostgreSQL 的核心特性是什么?与 MySQL 有什么区别?面试中 PostgreSQL 的重点有哪些?

答案

一、PostgreSQL 定位

PostgreSQL 是一个功能最丰富的 开源关系型数据库,被称为「世界上最先进的开源数据库」。

对比项PostgreSQLMySQL(InnoDB)
许可协议BSD(完全自由)GPL(开源版)/ 商业许可
MVCC 实现多版本存储在堆表 + VACUUMundo log 版本链
数据类型极其丰富:JSONB、数组、范围、几何较标准的数据类型
JSON 支持原生 JSONB,可建索引JSON 类型,5.7+ 支持
全文搜索内置(tsvector/tsquery需要 InnoDB 全文索引
窗口函数早期支持,功能完善8.0 才支持
CTE支持递归 CTE、物化控制8.0 支持
扩展机制极强(PostGIS、pgvector、TimescaleDB)有限
索引类型B-tree、Hash、GiST、SP-GiST、GIN、BRINB-tree、Hash、全文
并发控制SSI(可序列化快照隔离)Next-Key Lock
分区表声明式分区(10+)分区表(5.1+)
逻辑复制内置(10+)需要第三方工具
适用场景复杂查询、GIS、分析、JSONWeb 应用、简单业务

二、知识体系

三、面试重点分布

主题频率核心知识点
PostgreSQL vs MySQL⭐⭐⭐⭐⭐区别、选型依据
JSONB⭐⭐⭐⭐存储、查询、索引
窗口函数⭐⭐⭐⭐ROW_NUMBER、RANK、LAG/LEAD
CTE⭐⭐⭐递归 CTE
全文搜索⭐⭐⭐tsvector、tsquery
MVCC/VACUUM⭐⭐⭐与 MySQL MVCC 的区别
pgvector⭐⭐⭐AI/RAG 场景
扩展机制⭐⭐常见扩展

相关链接