一个查询慢,加了个索引还是慢,EXPLAIN ANALYZE 出来一堆 Seq Scan / Index Scan / Bitmap Heap Scan,看不太懂。
简单总结:
- Seq Scan:全表扫,大表就是性能杀手。
- Index Scan:走索引取数据,再回表。
- Bitmap Index Scan:先索引拿一批,再批量回表,介于两者之间。
我的查询没走索引的原因:
- 用了
LOWER(col)函数,普通索引不生效,要建表达式索引。 - 类型不匹配(字符串字段传了数字)。
- OR 条件里有任何一个没索引。
加表达式索引后快了 10 倍。
大家 Postgres 调优都有啥经验?