高级 PostgreSQL 实践实验室

在本课程中,通过涵盖关系、高级数据类型、索引、事务、视图、权限、查询、触发器、备份、分区、全文搜索等内容的实践实验室来掌握 PostgreSQL。

数据库PostgreSQL

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

通过 20 个引导式动手实验探索 PostgreSQL 进阶能力。你将从基础表操作扩展到关系设计、特殊数据类型、查询规划、事务、数据库可编程逻辑、管理维护、扩展、连接池与复制,并直接使用 SQL 和命令行工具完成操作。

每个实验都在小型本地环境中聚焦一个开发或运维主题。你会检查查询计划、创建 PL/pgSQL 函数与触发器、生成和恢复 SQL 备份、启用 PostGIS、通过 PgBouncer 压测连接,并搭建流复制副本。分步形式降低了复杂功能的学习门槛,同时保留其真实的生产权衡。

你将学到什么

  • 使用外键建立关系,并比较内连接与不同外连接
  • 查询 JSONB、数组、UUID、日期、时区、CTE、子查询与窗口函数
  • 创建索引、使用 EXPLAIN 检查计划、分区表,并通过 GIN 实现全文检索
  • 管理事务、回滚、隔离级别、锁、视图与物化视图
  • 开发存储函数、行触发器、事件触发器和 PL/pgSQL 异常处理
  • 控制角色与权限,并执行备份、恢复、VACUUM、ANALYZE 和日志检查
  • 启用 PostGIS,执行点、距离、缓冲区和相交查询
  • 配置 PgBouncer 连接池,并搭建和验证 PostgreSQL 流复制

本课程适合谁

本课程适合掌握 PostgreSQL 基础、希望在引导下接触广泛进阶功能的 SQL 学习者、应用开发者和数据库管理员入门者。它适合建立实践认知,但这些紧凑实验不能替代生产数据库平台的设计与运营经验。

前置要求: 你应理解基本 SQL 语句、表、键和查询,并能使用 Linux 终端。建议具备 psql 经验,因为许多实验会组合 SQL、服务命令和配置修改。

学习环境: 每个实验提供 Ubuntu 22.04 VNC 桌面、本地 PostgreSQL 服务、终端,以及需要时安装的 PostGIS 或 PgBouncer。管理实验使用本地服务和 sudo,无需云数据库或外部账号。

常见问题

为什么“进阶”课程标为 Beginner?

20 个实验都标为 Beginner,是因为它们提供明确的分步说明;但所覆盖功能本身具有进阶广度,仍需要 SQL 与 PostgreSQL 基础。课程旨在介绍各领域,而不是达到生产级深度。

复制实验会使用多台服务器或实现高可用吗?

不会。实验在同一台 VM 上运行 5432 端口的主库和 5433 端口的只读流复制副本。你会练习 WAL 设置、pg_basebackup、启动、监控和数据传播,但不涉及多主机网络、自动故障切换或灾难恢复。

PostGIS 和 PgBouncer 需要外部基础设施吗?

不需要。二者都在本地安装和配置。空间查询使用小型城市表,PgBouncer 则通过本机 pgbench 与管理统计进行测试。

管理实验与真实生产运维有多接近?

实验在可丢弃的小型数据库上演示命令和概念,包括纯 SQL pg_dump 备份及手工修改配置。容量规划、安全加固、物理备份、时间点恢复、监控系统和生产变更流程不在课程范围内。

教师

labby
Labby
Labby is the LabEx teacher.

为您推荐

no data