I have a table with 24k records and btree index on column 'id'. Is this normal, that 'select max(id)' or 'select count(id)' causes a sequential scan? It takes over 24 seconds (on a pretty fast machine):
=> explain ANALYZE select max(id) from ogloszenia;
Yes, it is. It is a known issue with Postgres's extensible operator architecture.
The work around is to have an index on the id column and do this instead:
SELECT id FROM ogloszenia ORDER BY id DESC LIMIT 1;
Which will be really fast.
Chris
---------------------------(end of broadcast)--------------------------- TIP 9: the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match