# 内容简介

LLMS 索引： [llms.txt](/llms.txt)

---

01-08

## 基础机制 {#zh-overview-1}

从数据库结构、事务可见性到空间清理，建立理解 PostgreSQL 内核的基础。

- [01 <strong>PostgreSQL 简介</strong>数据组织、内存管理和前后端通信协议。](</01-introduction/>)

- [02 <strong>隔离级别</strong>并发处理中的事务隔离，以及快照隔离如何保证一致性。](</02-isolation/>)

- [03 <strong>页面与元组</strong>页面结构、元组操作方式，以及多版本控制机制。](</03-pages-and-tuples/>)

- [04 <strong>数据快照</strong>快照机制的结构与规则，以及高并发环境下的数据一致性。](</04-snapshots/>)

- [05 <strong>页剪枝与 HOT</strong>页面内元组清理、HOT 更新机制，以及存储优化。](</05-page-pruning-and-hot-updates/>)

- [06 <strong>Vacuum</strong>Vacuum 与 Autovacuum 如何清理死元组并优化存储空间。](</06-vacuum-and-autovacuum/>)

- [07 <strong>事务 ID 回卷</strong>事务 ID 回卷的原因、风险和冻结旧事务的解决方式。](</07-freezing/>)

- [08 <strong>完全清理与重建</strong>VACUUM FULL、索引重建及其代价和适用场景。](</08-rebuilding-tables-and-indexes/>)

09-15

## 缓存、日志与锁 {#zh-overview-2}

深入数据库运行时的核心设施：缓存、WAL、表级锁、行级锁和内存锁。

- [09 <strong>缓冲区缓存</strong>缓冲区缓存的设计原理，以及减少磁盘 I/O 的关键作用。](</09-buffer-cache/>)

- [10 <strong>预写日志</strong>WAL 的逻辑与物理结构，以及崩溃恢复中的作用。](</10-write-ahead-log/>)

- [11 <strong>WAL 模式</strong>同步与异步写入、WAL 压缩和日志级别的性能权衡。](</11-wal-modes/>)

- [12 <strong>关系级锁</strong>不同锁模式的使用场景，以及它们对并发性能的影响。](</12-relation-level-locks/>)

- [13 <strong>行级锁</strong>通过行级锁提升并发能力，并避免锁冲突和死锁。](</13-row-level-locks/>)

- [14 <strong>特殊锁</strong>特殊锁与传统锁机制如何协同保证复杂操作的正确性。](</14-miscellaneous-locks/>)

- [15 <strong>内存锁</strong>自旋锁、轻量级锁及其在缓存和 WAL 管理中的作用。](</15-locks-on-memory-structures/>)

16-23

## 查询执行与优化 {#zh-overview-3}

围绕查询从解析、规划到执行的全过程，理解统计信息、扫描、连接和排序。

- [16 <strong>查询执行</strong>解析、转换、规划和执行过程，以及两种查询协议。](</16-query-execution-stages/>)

- [17 <strong>统计信息</strong>基础统计、表达式统计和多元统计对查询优化的影响。](</17-statistics/>)

- [18 <strong>顺序扫描</strong>可插拔存储、堆表、顺序扫描与并行计划。](</18-table-access-methods/>)

- [19 <strong>索引访问</strong>索引扩展性、操作符类、操作符族和索引引擎接口。](</19-index-access-methods/>)

- [20 <strong>索引扫描</strong>常规索引扫描、仅索引扫描、位图扫描和并行索引扫描。](</20-index-scans/>)

- [21 <strong>嵌套循环连接</strong>嵌套循环连接的工作原理、适用场景和变体。](</21-nested-loop/>)

- [22 <strong>哈希连接</strong>一阶段与两阶段哈希连接，以及并行环境下的优化。](</22-hashing/>)

- [23 <strong>排序与归并连接</strong>排序算法、外部排序、并行排序和归并连接。](</23-sorting-and-merging/>)

24-29

## 索引结构 {#zh-overview-4}

系统梳理 PostgreSQL 丰富的索引类型，理解不同数据模型下的搜索能力。

- [24 <strong>哈希索引</strong>页面结构、操作符类和等值查询场景下的性能特性。](</24-hash/>)

- [25 <strong>B 树索引</strong>B 树搜索与插入算法、页面布局、去重和多列索引。](</25-b-tree/>)

- [26 <strong>GiST 索引</strong>GiST 的结构、R 树实现，以及空间搜索和相似度搜索。](</26-gist/>)

- [27 <strong>SP-GiST 索引</strong>面向空间数据和非平衡数据集的定制化索引结构。](</27-sp-gist/>)

- [28 <strong>GIN 索引</strong>数组、JSON、全文搜索等多值字段的高效搜索机制。](</28-gin/>)

- [29 <strong>BRIN 索引</strong>大规模顺序数据集中的空间效率和稀疏数据分布优化。](</29-brin/>)
