索引选不对,再快的 SQL 也白费
9 分钟 · 2026-04
索引不是越多越好。每个索引都要在写入时维护,也会占用空间。先搞清楚查询的过滤与排序条件,再决定建哪种索引。
B-Tree 适合等值与前缀范围;GIN 适合数组、JSONB 和全文检索这类「一个字段里多个值」的场景;BRIN 则在大而有序的表上极省空间,比如按时间递增的日志。
永远用 EXPLAIN (ANALYZE, BUFFERS) 看真实执行情况,而不是凭直觉。Seq Scan 不一定慢,Index Scan 也不一定快——让数据说话。
