Thread: RE: [SQL] Optimizing performance using indexes

RE: [SQL] Optimizing performance using indexes

From
"Jackson, DeJuan"
Date:
> Hello!
>
>  There are examples below and can anybody explain me - how to use
> indexes
>  in PostgreSQL for best perfomance? Look here:
>
>  create table aaa (num int2, name text);
>  create index ax on aaa (num);
>
>  explain select * from aaa where num = 5;
>          Index Scan on aaa  (cost=0.00 size=0 width=14)
>
>  explain select * from aaa where num > 5;
>          Seq Scan on aaa  (cost=0.00 size=0 width=14)
>
>  Why PostgreSQL in the first case uses index, but in the second -
> doesn't ?
>  As I understand, there is no big difference between queries. Are
> there
>  general recommendations on creating indexes?
>
>  This questions because I'm relatively new to SQL and hope somebody
> can
>  help me :) Thank you.
>
> ---
> Vladimir Litovka <doka@webest.com>
>
Hi Vladimir,
    I see that you found at least one of the PostgreSQL mailing
list.

As to your question:  If you think about there has to be some overhead
for an index scan.  If you are select beck ever row in a table it makes
little since to scan an index for that table; exception is when you are
ordering the rows in the table by that index; even then it's usually
faster to actually sort than to scan all over the disk for rows.
PostgreSQL make the judgement call in favor of a sequential scan when
the optimizer reports that it will be the faster method.
I'm sure that someone else could give you a more precise explanation, so
I'll leave them to it.
    -DEJ