我创建了如下索引:
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
始终执行顺序扫描。即使我关闭了顺序扫描,它也会调用位图堆扫描而不是索引扫描。
请在这里建议我所缺少的内容。