《Learn PostgreSQL》第二版是一本全面深入的PostgreSQL数据库学习指南,由Luca Ferrari和Enrico Pirozzi合著,于2023年10月由Packt Publishing出版。本书详细介绍了PostgreSQL 16的安装、配置、管理以及高级特性,旨在帮助读者从基础到高级逐步掌握PostgreSQL数据库的使用和优化。
一、书籍概览
本书面向希望从零开始学习PostgreSQL的读者,以及那些需要构建健壮、可扩展和高可用性数据库应用的开发人员和数据库管理员。书中不仅涵盖了PostgreSQL的基础知识,还深入探讨了其高级特性,如分区、触发器、规则、扩展和性能优化等。通过丰富的实践教程和示例代码,读者可以快速上手并深入理解PostgreSQL的各个方面。
二、主要内容
第一部分:基础入门
- 第1章:PostgreSQL简介:介绍PostgreSQL的历史、特性、社区支持以及如何获取帮助。详细讲解了PostgreSQL的安装方法,包括通过二进制包安装和从源代码编译。
- 第2章:了解你的集群:深入剖析PostgreSQL集群的文件系统结构、主要配置文件以及如何使用psql命令行工具连接和管理数据库。
- 第3章:管理用户和连接:讲解如何创建和管理用户、角色以及如何限制用户连接,介绍了PostgreSQL的用户管理机制和权限体系。
第二部分:核心功能
- 第4章:数据定义语言(DDL):介绍如何使用DDL语句创建、修改和删除数据库对象,如表、索引、视图等。
- 第5章:基本SQL语句:深入讲解了SQL语言的基本操作,包括数据的插入、查询、更新和删除,以及如何使用WHERE子句进行条件筛选。
- 第6章:窗口函数:介绍了窗口函数的概念及其在数据分析中的应用,展示了如何在不将数据聚合到单行的情况下进行复杂的数据操作。
第三部分:高级特性
- 第7章:服务器端编程:讲解了如何在PostgreSQL中编写和使用函数、过程以及如何与事务边界交互。
- 第8章:触发器和规则:通过实际例子展示了触发器和规则的使用方法,包括事件触发器的应用。
- 第9章:分区:详细介绍了PostgreSQL的分区机制,包括声明式分区的使用方法、分区的维护以及如何通过分区提高查询性能。
- 第10章:用户、角色和数据库安全:深入探讨了PostgreSQL的安全机制,包括角色管理、权限分配、行级安全(RLS)以及SSL连接的配置。
第四部分:性能优化与管理
- 第11章:事务、MVCC、WAL和检查点:介绍了PostgreSQL的事务管理机制、多版本并发控制(MVCC)、Write-Ahead Logging(WAL)以及检查点的概念。
- 第12章:扩展数据库:讲解了如何使用扩展来增强PostgreSQL的功能,包括如何搜索、安装和开发自己的扩展。
- 第13章:查询优化和索引:深入探讨了索引的类型、如何选择合适的索引以及如何通过工具(如EXPLAIN)优化查询性能。
- 第14章:日志和审计:介绍了如何配置日志记录、使用外部工具分析日志以及如何进行数据库审计。
第五部分:高可用性和备份
- 第15章:备份和恢复:详细讲解了备份的重要性、备份方法(全量备份、部分备份)以及如何从备份中恢复数据。
- 第16章:配置和监控:介绍了PostgreSQL的配置选项、如何通过系统目录监控数据库状态以及如何使用扩展进行实时监控。
- 第17章:物理复制:讲解了PostgreSQL的物理复制机制,包括异步和同步复制、复制槽和延迟复制。
- 第18章:逻辑复制:介绍了逻辑复制的概念、设置方法以及如何监控复制状态。
三、特色与优势
- 实践导向:书中提供了大量的实践教程和示例代码,帮助读者快速上手并应用到实际工作中。
- 全面覆盖:从基础到高级,涵盖了PostgreSQL的各个方面,适合不同层次的读者。
- 最新版本:基于PostgreSQL 16编写,确保读者学习到最新的特性和最佳实践。
- 社区支持:提供了Discord社区链接,方便读者交流学习心得、提问和获取最新信息。
四、适用人群
本书适合以下读者:
- 初学者:希望通过系统学习掌握PostgreSQL数据库的安装、配置和使用。
- 数据库管理员:需要深入了解PostgreSQL的高级特性、性能优化和高可用性解决方案。
- 开发人员:希望在应用程序中集成PostgreSQL,并利用其强大的功能提升应用性能。
通过阅读本书,读者将能够全面掌握PostgreSQL的使用和管理,无论是日常的数据库操作还是复杂的系统优化,都能游刃有余。《Learn PostgreSQL》第二版无疑是一本值得推荐的PostgreSQL学习宝典。