A join probably will work best for you. A quick way
to do an implicit join:
delete from email_bank where email_id = t_a.email_id;
--- Rajesh Kumar Mallah <mallah@trade-india.com>
wrote:
> Hi folks,
>
> I think there is still a problem ,
>
> email_bank contains ~ 1 million records and t_a
> contains 58 records
> both are indexed on email_id ( integer colmn.) i
> want to remove these 58
> records
> from email_bank where email_id in t_a &
> email_bank match.
>
> but the below is still slow !
>
>
> explain delete from email_bank where exists (select
> email_id from t_a where
> email_bank.email_id=t_a.email_id) ;
> NOTICE: QUERY PLAN:
>
> Seq Scan on email_bank (cost=0.00..1760313.80
> rows=1009397 width=6)
> SubPlan
> -> Seq Scan on t_a (cost=0.00..1.73 rows=1
> width=4)
>
> EXPLAIN
>
> PS:
> I ran VACUUM ANALYZE on email_bank and t_a and
> both are indexed on
> email_id before
> the explain .
>
>
> regds
> mallah.
>
>
> Rajesh Kumar Mallah wrote:
>
> > Hi folks,
> >
> > We require to do below or similar quite often
> >
> > DELETE from t_a where email in (select email from
> t_b);
> >
> > everyone knows "IN" is pain fully slow currently
> in pgsql
> > is the any fster alternative to above query
> >
> > regds
> > Mallah.
> >
> > ---------------------------(end of
> broadcast)---------------------------
> > TIP 1: subscribe and unsubscribe commands go to
> majordomo@postgresql.org
>
__________________________________________________
Do You Yahoo!?
Yahoo! Tax Center - online filing with TurboTax
http://taxes.yahoo.com/