专题
110 篇技术文章 · 1 篇项目后记 · 9 个专题。下列数量含跨专题收录;侧栏数量只计算主归属文章。
查询性能与观测执行计划、慢 SQL、统计信息与基准测试。24 篇收录,17 篇主归属
运维排障与日常工具备份恢复、psql、Docker 和日常运维。28 篇收录,21 篇主归属
锁、事务与在线变更长事务、锁等待、DDL 与在线变更。19 篇收录,19 篇主归属
索引治理索引创建、维护、清理和损坏检查。12 篇收录,10 篇主归属
存储、WAL 与 VacuumWAL、膨胀、Vacuum 与存储布局。24 篇收录,19 篇主归属
SQL、数据建模与扩展玩法SQL、数组、UUID、元数据和数据建模。12 篇收录,12 篇主归属
复制、校验与升级复制延迟、数据校验与主版本升级。8 篇收录,7 篇主归属
实践剖析真实问题、源码分析与操作系统观测。3 篇收录,3 篇主归属
工程实践与后记工程方法、协作与项目后记。3 篇收录,3 篇主归属
查询性能与观测
执行计划、慢 SQL、统计信息与基准测试。
收录 24 篇 · 主归属 17 篇
- PostgreSQL B-tree 为什么快:有序查找、复合索引与 skip scan · 会议材料
- PostgreSQL 优化器提示:怎样干预和稳定执行计划 · 会议材料
- 一条坏 SQL 会拖垮 PostgreSQL 吗?理解查询内存与故障隔离 · 技术博客
- 外键写入为什么会变慢:理解 PostgreSQL 的 MultiXact 与长事务 · 技术博客
- PostgreSQL 19 值得关注什么:在线维护、复制改进与升级变化 · 会议材料
- SQL 很快,事务却在排队:PostgreSQL OLTP 锁竞争 · 会议材料
- PostgreSQL 性能排查:规划开销、分区锁与表膨胀 · 会议材料
- EXPLAIN 为什么应该带 BUFFERS · 上游译文
- pg_stat_statements 入门 · 上游译文
- pg_stat_statements 进阶 · 上游译文
- pg_stat_statements 深入使用 · 上游译文
- 使用 FlameGraph 和 eBPF/perf 排查性能 · 上游译文
- 临时监控方法 · 上游译文
- 为 pg_stat_statements 找到真实 SQL 样例 · 上游译文
- 如何做基准测试 · 上游译文
- 如何判断一个查询是否太慢 · 上游译文
- 基准测试迭代前后的准备工作 · 上游译文
- 让非生产环境 Planner 更像生产环境 · 上游译文
- OLTP 粗略配置调优 · 上游译文
- work_mem 调优 · 上游译文
- 运行 ANALYZE 收集统计信息 · 上游译文
- 为什么 actual time 和 Execution Time 有很大差异? · 实践材料
- 深入浅出 bpftrace 分析 PostgreSQL · 实践材料
- 当 PostgreSQL 慢在数据库之外:用 bpftrace 打通 SQL 与内核观测 · 实践材料
运维排障与日常工具
备份恢复、psql、Docker 和日常运维。
收录 28 篇 · 主归属 21 篇
- PostgreSQL 优化器提示:怎样干预和稳定执行计划 · 会议材料
- 备库查询为什么被取消:WAL 回放冲突与等待预算 · 技术博客
- 一条坏 SQL 会拖垮 PostgreSQL 吗?理解查询内存与故障隔离 · 技术博客
- PostgreSQL 排序规则:文本比较、索引与升级风险 · 会议材料
- Autovacuum 为什么跟不上:清理受阻、任务积压与执行缓慢 · 会议材料
- 排查并加速 Postgres 停止和重启 · 上游译文
- 排查 Postgres 启动缓慢 · 上游译文
- 加速大库 pg_dump · 上游译文
- 导入 CSV 到 Postgres · 上游译文
- 使用 pg_restore · 上游译文
- 不发额外查询设置 application_name · 上游译文
- 如何退出 psql · 上游译文
- 在 Ubuntu 22.04 编译 Postgres · 上游译文
- 初步配置调优 · 上游译文
- 安装带 plpython3u 的 Postgres 16 · 上游译文
- 在 psql 脚本中使用变量 · 上游译文
- 通过观察 psql 学习元数据 · 上游译文
- 使用 Docker 运行 Postgres · 上游译文
- psql 调优 · 上游译文
- psql 快捷操作 · 上游译文
- 在 psql 中绘图 · 上游译文
- 修复 psql 中的 \\e 编辑器问题 · 上游译文
- 修改数据库中所有对象所有者 · 上游译文
- 面向 OLTP 的 Linux 参数调优 · 上游译文
- 使用 lib_pgquery 归一化和匹配查询 · 上游译文
- 格式化 psql 脚本文本输出 · 上游译文
- 深入浅出 bpftrace 分析 PostgreSQL · 实践材料
- 当 PostgreSQL 慢在数据库之外:用 bpftrace 打通 SQL 与内核观测 · 实践材料
锁、事务与在线变更
长事务、锁等待、DDL 与在线变更。
收录 19 篇 · 主归属 19 篇
- 外键写入为什么会变慢:理解 PostgreSQL 的 MultiXact 与长事务 · 技术博客
- SQL 很快,事务却在排队:PostgreSQL OLTP 锁竞争 · 会议材料
- 如何安全执行 PostgreSQL 在线变更:DDL、数据回填与批量删除 · 会议材料
- 如何排查 LISTEN/NOTIFY 引起的提交阻塞 · 会议材料
- heavyweight locks 分析:基础 · 上游译文
- 处理 OLTP 长事务 · 上游译文
- 无停机重定义主键 · 上游译文
- 使用子事务 · 上游译文
- 单条查询实现 find-or-insert · 上游译文
- 无停机启用 data checksums · 上游译文
- heavyweight locks 分析:锁树 · 上游译文
- 删除列 · 上游译文
- 添加列 · 上游译文
- 无停机添加 CHECK 约束 · 上游译文
- 添加外键 · 上游译文
- 理解 DDL 被什么阻塞 · 上游译文
- 移除外键 · 上游译文
- heavyweight locks 分析:持久监控 · 上游译文
- 修改 Postgres 参数 · 上游译文
索引治理
索引创建、维护、清理和损坏检查。
收录 12 篇 · 主归属 10 篇
- PostgreSQL B-tree 为什么快:有序查找、复合索引与 skip scan · 会议材料
- PostgreSQL 排序规则:文本比较、索引与升级风险 · 会议材料
- 监控 CREATE INDEX / REINDEX 进度 · 上游译文
- 过度索引 · 上游译文
- 索引维护 · 上游译文
- 使用 pg_amcheck 检查 btree 索引损坏 · 上游译文
- 创建索引:基础 · 上游译文
- 创建索引:进阶 · 上游译文
- 查找未使用索引 · 上游译文
- 查找冗余索引 · 上游译文
- 并行重建大量索引并避免死锁 · 上游译文
- 检查 btree 索引损坏 · 上游译文
存储、WAL 与 Vacuum
WAL、膨胀、Vacuum 与存储布局。
收录 24 篇 · 主归属 19 篇
- 备库查询为什么被取消:WAL 回放冲突与等待预算 · 技术博客
- 外键写入为什么会变慢:理解 PostgreSQL 的 MultiXact 与长事务 · 技术博客
- PostgreSQL 19 值得关注什么:在线维护、复制改进与升级变化 · 会议材料
- 深入 PostgreSQL 逻辑复制:性能测试、历史快照与故障恢复 · 会议材料
- Autovacuum 为什么跟不上:清理受阻、任务积压与执行缓慢 · 会议材料
- PostgreSQL 性能排查:规划开销、分区锁与表膨胀 · 会议材料
- 理解 tuple 在表中的稀疏存储 · 上游译文
- 理解 LSN 和 WAL 文件名 · 上游译文
- 容易踩坑的 Postgres 特性 · 上游译文
- 检查 btree 索引损坏 · 上游译文
- 排查 pg_wal 目录增长 · 上游译文
- 如何破坏数据库:制造损坏 · 上游译文
- 如何破坏数据库:模拟 XID 回卷 · 上游译文
- 如何破坏数据库:有害负载 · 上游译文
- 监控 XID 回卷风险 · 上游译文
- 监控 xmin horizon 避免回卷和膨胀 · 上游译文
- 处理 bloat · 上游译文
- 降低 WAL 生成速率 · 上游译文
- 一个 page 能插入多少 tuple · 上游译文
- Autovacuum 队列和进度 · 上游译文
- 刷新 OS page cache 和 Postgres buffer pool · 上游译文
- 查找有 int4 主键溢出风险的表 · 上游译文
- 列顺序与存储优化:Column Tetris · 上游译文
- 快速检查值的数据类型和存储大小 · 上游译文
SQL、数据建模与扩展玩法
SQL、数组、UUID、元数据和数据建模。
收录 12 篇 · 主归属 12 篇
- PostgreSQL 排序规则:文本比较、索引与升级风险 · 会议材料
- 在 Postgres 中调用 OpenAI API 实现语义搜索和 GPT Chat · 上游译文
- 使用元数据 · 上游译文
- 数组使用:基础 · 上游译文
- 数组使用:进阶 · 上游译文
- 加速批量加载 · 上游译文
- SQL 格式化与风格指南 · 上游译文
- 生成测试数据 · 上游译文
- 使用 UUID · 上游译文
- UUID v7 与分区 · 上游译文
- 使用创建时间和统计信息估算大表同比增长 · 上游译文
- 用 SQL 绘制霜花图案 · 上游译文
复制、校验与升级
复制延迟、数据校验与主版本升级。
收录 8 篇 · 主归属 7 篇
- 备库查询为什么被取消:WAL 回放冲突与等待预算 · 技术博客
- PostgreSQL 19 值得关注什么:在线维护、复制改进与升级变化 · 会议材料
- 深入 PostgreSQL 逻辑复制:性能测试、历史快照与故障恢复 · 会议材料
- 无停机启用 data checksums · 上游译文
- 判断复制延迟 · 上游译文
- 将物理副本转换为逻辑副本 · 上游译文
- 大型高负载集群的无停机大版本升级 · 上游译文
- 排查流复制延迟 · 上游译文
实践剖析
真实问题、源码分析与操作系统观测。
收录 3 篇 · 主归属 3 篇
- 为什么 actual time 和 Execution Time 有很大差异? · 实践材料
- 深入浅出 bpftrace 分析 PostgreSQL · 实践材料
- 当 PostgreSQL 慢在数据库之外:用 bpftrace 打通 SQL 与内核观测 · 实践材料
工程实践与后记
工程方法、协作与项目后记。
收录 3 篇 · 主归属 3 篇
- 如何不把 DBA/DBRE 工作搞砸 · 上游译文
- 如何帮助别人 · 上游译文
- 后记 · 项目后记