Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PostgreSQL: Why does this simple query not use the index?

I have a table t with a column c, which is an int and has a btree index on it.

Why does the following query not utilize this index?

explain select c from t group by c;

The result I get is:

HashAggregate  (cost=1005817.55..1005817.71 rows=16 width=4)
  ->  Seq Scan on t  (cost=0.00..946059.84 rows=23903084 width=4)

My understanding of indexes is limited, but I thought such queries were the purpose of indexes.

like image 953
David Avatar asked Feb 04 '11 22:02

David


1 Answers

The query certainly can use an index. The reason that it doesn't in your particular case depends on the particular size and distribution of the data. You can use SET enable_seqscan TO off to investigate.

like image 65
Peter Eisentraut Avatar answered Oct 20 '22 13:10

Peter Eisentraut