本章目录

引言

本书介绍 PostgreSQL 查询优化的基础知识。

Postgres Professional 为数据库管理员和应用开发者提供培训课程1,其中一门是“QPT. Query Performance Tuning” (查询性能调优)。

既然课程和书籍讲的是同一个主题,为什么还需要两种形式?

本书是在修订后的 QPT 课程基础上编写的,因此两者有大量相同的内容。区别在于呈现方式。

课程从 PostgreSQL 规划和优化查询所使用的基本算法入手,系统地展开讲解。课程分为若干模块及相关主题,每个主题都包含理论与实践。理论部分并不局限于幻灯片:大多数主题还会在课程虚拟机中的 PostgreSQL 实例上进行现场演示。学员可以获得附有详细讲解备注的幻灯片、演示输出、实践练习的解答,以及补充参考资料。你既可以参加讲师授课,也可以自行学习;包括视频录像在内的课程资料都可以在我们的网站上找到2。

学习课程时,最好能够亲自运行演示并完成练习。而书籍满足的是另一种需要。你可以在地铁上或等公交时阅读,夹上书签,稍后接着读,无须启动计算机,也无须重新搭建课程环境。

这种形式上的区别,意味着不能只是把课程文字搬到纸面上。过长的代码行不适合书页排版,课程中理论与演示分开组织的方式,放到书中也显得生硬。因此,我们将演示结果重新融入叙述,调整了一些示例,并删去了一些主要用于说明补充细节的例子。为了控制篇幅,我们还省略了“索引类型”这一主题,并合并了部分主题,例如“访问方法”和“并行访问”。

阅读本书前,你应当熟悉 SQL 和类 Unix 操作系统。了解 PL/pgSQL 会有帮助,但不是必需条件。我们也假定你大致具备 DBA1 或 DEV1 课程所涵盖的基础知识。对于不能直接帮助理解查询优化的服务器配置和内部实现细节,本书有意不作展开。

所有示例均使用 2025 年 9 月 1 日版本的“Airlines”示例数据库3,具体为包含六个月航班数据的版本。面向 PostgreSQL 16 的 QPT 课程使用的则是上一版示例数据库,其版本日期为 2017 年 8 月 15 日。