Обсуждение: Using indexes

Поиск
Список
Период
Сортировка

Using indexes

От
Linh Luong
Дата:
Hi,

Indexes are used to find a record faster in a table.

It only seems to work if I am working with one table.
eg)
> create index customer_id_idx on customer(id); 
> select * from customer where id=1;
-- This uses the index I create

However, when I start to join 2 or more tables together it doesn't seem
to use it.. WHY???

eg)
> create index customer_id_idx on customer(id);
> select * from customer, purchaseorder where customer.id=purchaseorder.id;

-- This results in a seq scan .. WHY??

Is there a way to make it so that it uses my index

Thanks again.


Re: Using indexes

От
Bruce Momjian
Дата:
Man I am tired of this question.  I have updated the FAQ:

   <P>Indexes are usually not used for <SMALL>ORDER BY</SMALL>   or joins: a sequential scan followed by an explicit
sortis   faster than an indexscan of all tuples of a large table, because it   takes fewer disk accesses.</P>
                          
 


> Hi,
> 
> Indexes are used to find a record faster in a table.
> 
> It only seems to work if I am working with one table.
> eg)
> > create index customer_id_idx on customer(id); 
> > select * from customer where id=1;
> -- This uses the index I create
> 
> However, when I start to join 2 or more tables together it doesn't seem
> to use it.. WHY???
> 
> eg)
> > create index customer_id_idx on customer(id);
> > select * from customer, purchaseorder where customer.id=purchaseorder.id;
> 
> -- This results in a seq scan .. WHY??
> 
> Is there a way to make it so that it uses my index
> 
> Thanks again.
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly
> 

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026