How to use index in simple select
Andrus <kobruleht2@hot.ee>
From: Andrus <kobruleht2@hot.ee>
To: pgsql-general <pgsql-general@postgresql.org>
Date: 2025-11-28T22:57:46Z
Lists: pgsql-general
Hi! Table has index on name column: CREATE TABLE firma2.klient ( kood character(12) primary key, nimi character(100), ... ); CREATE INDEX IF NOT EXISTS klient_nimi_idx ON firma2.klient USING btree (nimi COLLATE pg_catalog."default" ASC NULLS LAST) TABLESPACE pg_default; Database settings have default values: enable_indexonlyscan on enable_indexscan on enable_indexonlyscan on enable_indexscan on Query SELECT * FROM firma2.klient WHERE nimi='John'; Runs slowly. analyze firma2.klient; explain analyze select * from firma2.klient where nimi='John' Shows that index is not used: "Seq Scan on klient (cost=0.00..2287976.20 rows=1 width=4002) (actual time=12769.987..12769.988 rows=0 loops=1)" " Filter: (nimi = 'John'::bpchar)" " Rows Removed by Filter: 849971" "Planning Time: 4.751 ms" "Execution Time: 12770.029 ms" How to force Postgres to use index? It probably worked long time but suddenly stopped working today. Re-started whole windows server but problem persists. Using PostgreSQL 17.5 on x86_64-windows, compiled by msvc-19.43.34808, 64-bit in Windows Server 2022 vers 21H2 Andrus. Posted also in https://stackoverflow.com/questions/79832965/how-to-use-index-in-simple-select