Postgres索引不起作用。始终执行顺序扫描

时间:2020-10-16 16:47:02

标签: postgresql query-performance

我创建了如下索引:

CREATE INDEX CONCURRENTLY IF NOT EXISTS employee_emp_id_index ON employee ((lower(emp_id))); --'emp_id' is of type : VARCHAR2

EXPLAIN ANALYZE SELECT * FROM employee where lower(emp_id) = 'abc12345'; 

执行计划:

Seq Scan on employee  (cost=0.00..2765.53 rows=16323 width=11) (actual time=0.071..13.247 rows=16340 loops=1)
Filter: (lower((emp_id)::text) = 'abc12345'::text)
Rows Removed by Filter: 11967
Buffers: shared hit=2341
Planning Time: 0.336 ms
Execution Time: 14.000 ms

始终执行顺序扫描。即使我关闭了顺序扫描,它也会调用位图堆扫描而不是索引扫描。

请在这里建议我所缺少的内容。

0 个答案:

没有答案