跳过正文
  1. 数据库/

PostgreSQL 索引优化实战

·254 字·1 分钟·
博主
作者
博主
用 Hugo 与 Blowfish 构建的中英双语博客。
目录

索引为什么重要
#

没有索引的表扫描是 O(n) 的,数据量上来后查询会急剧变慢。合理的索引能把查询降到 O(log n)。

先看执行计划
#

EXPLAIN ANALYZE SELECT * FROM orders WHERE user_id = 42;

通过执行计划判断是顺序扫描还是索引扫描,再决定是否建索引。

常用索引类型
#

  • B-tree:默认索引,适合等值查询与范围查询
  • GIN:适合全文检索与数组/JSON 包含查询
  • BRIN:适合按物理顺序排列的大表

常见误区
#

  • 过度建索引:写放大、占用存储
  • 对低选择性列建索引:收益有限
  • 忘掉复合索引列顺序:最左前缀原则

小结
#

索引优化没有银弹,从执行计划出发,配合 pg_stat_user_indexes 观察实际使用情况,才能做出合理决策。