作者介绍:简历上没有一个精通的运维工程师,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

数据库是一个系统(应用)最重要的资产之一,所以我们的数据库将从以下几个数据库来进行介绍。
MySQL
PostgreSQL(本章节)
Redis
Etcd
我们在前面介绍MySQL的时候重点介绍过它的2个存储引擎:MyISAM和InnoDB,今天我们来介绍下PostgreSQL的存储引擎。
PostgreSQL与 MySQL 等数据库的一个核心区别在于,它本身就是一个完整的数据库管理系统,而不是一个可以更换存储引擎的数据库服务器。因此,严格来说,PostgreSQL 没有像 MySQL 那样可以插拔的“存储引擎”(Storage Engine)概念。
虽然不是存储引擎,但表空间是控制数据物理位置的重要机制。
这是最接近“可插拔存储引擎”概念的功能。
PostgreSQL 强大的扩展生态系统可以改变或增强其存储行为。
citus: 将 PostgreSQL 转变为分布式数据库,数据被分片(sharded)存储在多个节点上。这改变了数据的物理分布和存储方式。
timescaledb: 专为时间序列数据优化的扩展。它将大表自动分割成更小的“块”(chunks),并针对时间序列查询进行了优化,提供了类似“特定领域存储引擎”的功能。
zombodb: 将 PostgreSQL 与 Elasticsearch 集成,用于强大的全文搜索。
概念 | 在 PostgreSQL 中的对应物 | 说明 |
|---|---|---|
存储引擎 | 核心存储系统 (Heap + MVCC + WAL) | PostgreSQL 没有可替换的存储引擎,其存储逻辑是内置且固定的。 |
物理位置控制 | 表空间 (Tablespaces) | 可以指定数据库对象存储在哪个磁盘路径。 |
访问外部数据 | 外部数据包装器 (FDW) | 可以像查询本地表一样查询外部系统,但数据不存储在 PG 内部。 |
特定场景优化 | 扩展 (Extensions) | 如 Citus (分布式), TimescaleDB (时序) 等,通过扩展实现类似专用存储引擎的功能。 |