Re: join - versus - exists [performance]

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Juan Ramirez <juanrmiranda(at)hotmail(dot)com>
Cc: PostGreSQL Lista de Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: join - versus - exists [performance]
Date: 2008-11-14 21:10:30
Message-ID: 20081114211030.GJ3830@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Juan Ramirez escribió:

> cual tiene más performance, yo estoy acostumbrado cuando hago
> relaciones entre tablas a utilizar "exists" en lugar de los join.

Depende de cada caso particular. Y hay que tener muy en cuenta que a
veces IN es muy rapido, en cambio NOT IN es muy lento; y ahi donde
EXISTS pueda ser muy rapido, NOT EXISTS puede ser muy lento y
viceversa. Y en todos los casos hay que tener mucho cuidado con la
forma en que se resuelven los valores NULL, porque a veces es
contraintuitiva.

También depende de las versiones de Postgres, porque a medida que el
optimizador aprende trucos nuevos, las cosas que antes eran lentas puede
que dejen de serlo, y pasar a ser más rápidas que las formas que antes
eran la mejor alternativa.

--
Alvaro Herrera http://www.amazon.com/gp/registry/DXLWNGRJD34J
"El sabio habla porque tiene algo que decir;
el tonto, porque tiene que decir algo" (Platon).

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Juan Ramirez 2008-11-14 21:15:41 RE: join - versus - exists [performance]
Previous Message Juan Ramirez 2008-11-14 21:07:13 RE: join - versus - exists [performance]