PostgreSQL 索引原理:B-Tree 从结构到实战
PostgreSQL 默认索引是 B-Tree,但大多数人对它的理解停留在「加了索引查询会变快」这一层。这篇文章从 B-Tree 的数据结构出发,讲清楚它是怎么组织数据的、为什么能加速查询、又在哪些情况下会失效,最后给出一套实用的索引设计原则。
共 3 篇文章
PostgreSQL 默认索引是 B-Tree,但大多数人对它的理解停留在「加了索引查询会变快」这一层。这篇文章从 B-Tree 的数据结构出发,讲清楚它是怎么组织数据的、为什么能加速查询、又在哪些情况下会失效,最后给出一套实用的索引设计原则。
慢查询排查不神秘,就是一套固定流程:日志定位 → EXPLAIN ANALYZE 分析 → 索引或查询优化。这篇文章从开慢查询日志开始,一步步拆解排查过程,重点讲几个最常见的慢查询模式:缺索引、N+1、隐式类型转换,以及怎么把 SQLAlchemy ORM 生成的 SQL 捞出来看。
一个 INT 占几字节,一条 JSONB 记录多大,表到多少行开始变慢,索引能撑到多大——这些问题在设计阶段很少有人认真算,等出了问题才去翻文档。这篇文章把 PostgreSQL 存储大小和查询效率的关键数字整理在一起,从字段级别到亿级表,给你一套可以参考的心理模型。