Re: Index Usage using IN
От | Hari Warrier |
---|---|
Тема | Re: Index Usage using IN |
Дата | |
Msg-id | 43E13266.2090101@gmail.com обсуждение исходный текст |
Ответ на | Index Usage using IN (Ralph Mason <ralph.mason@telogis.com>) |
Список | pgsql-performance |
Select ID from TableA where not exists ( Select ID from Table B where ID = TableA.ID) might give you index scan. Of course, that is only useful is TableA is very small table. Not appropriate for 250k rows on 2/1/2006 12:12 PM Ralph Mason said the following: > Hi, > > I have 2 tables both have an index on ID (both ID columns are an oid). > > I want to find only only rows in one and not the other. > > Select ID from TableA where ID not IN ( Select ID from Table B) > > This always generates sequential scans. > > Table A has about 250,000 rows. Table B has about 250,000 Rows. > > We should get a Scan on Table B and a Index Lookup on Table A. > > Is there any way to force this? enable_seqscan off doesn't help at all. > > The Plan is > > Seq Scan on tablea(cost=100000000.00..23883423070450.96 rows=119414 > width=4) > Filter: (NOT (subplan))" > SubPlan -> Seq Scan on tableb (cost=100000000.00..100004611.17 > rows=242617 width=4) > > > Thanks > Ralph > > > > > ---------------------------(end of broadcast)--------------------------- > TIP 6: explain analyze is your friend >
В списке pgsql-performance по дате отправления: