It sounds like PostgreSQL badly overestimates the cost of the index scan.
Does the table perchance fit completely into memory, without
effective_cache_size indicating that?
Don't know the exact way to answer your question, but my initial instinct is "no way."
select pg_relation_size('packets');
pg_relation_size
------------------
19440115712
------------------
19440115712
19GB. So it's a big table. The query I submitted earlier returns about 13M rows and the table currently has about 38M rows.
Love cheap thrills? Enjoy PC-to-Phone calls to 30+ countries for just 2¢/min with Yahoo! Messenger with Voice.