On Thu, 21 Apr 2005, Enrico Weigelt wrote:
> I'm doing a simple lookup in a small table by an unique id, and I'm
> wondering, why explains tells me seqscan is used instead the key.
>
> The table looks like:
>
> id bigint primary key,
> a varchar,
> b varchar,
> c varchar
>
> and I'm quering: select * from foo where id = 2;
>
> I've got only 15 records in this table, but I wanna have it as
> fast as possible since its used (as a map between IDs and names)
> for larger queries.
Two general things:
For 15 records, an index scan may not be faster. For simple tests
you can play with enable_seqscan to see, but for more complicated
queries it's a little harder to tell.
If you're using a version earlier than 8.0, you'll need to quote
or cast the value you're searching for due to problems with
cross-type comparisons (the 2 would be treated as int4).