Re: duda sobre indices

From: Francisco Olarte <folarte(at)peoplecall(dot)com>
To: Igniris Valdivia <ivaldivia(at)xetid(dot)cu>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: duda sobre indices
Date: 2015-10-24 10:23:09
Message-ID: CA+bJJbz-sjfRr-G4OuxJstxAgk951ZU30jtOivZXbUdFhBd0Mg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Buenos dias:

2015-10-22 22:44 GMT+02:00 Igniris Valdivia <ivaldivia(at)xetid(dot)cu>:
> tengo un indice btree que contiene dos campos digamos id1 e id2 pues se debe
> garantizar la unicidad de la combinacion de estos campos
> ahora en la consulta donde la uso se usan los operadores igual e IN como por
> ejemplo:
>
> id1=id3 AND id2 IN (1,2,3)
>
> y como el indice es compuesto la busqueda del IN la hace secuencial
> que pudiera hacer para arreglar eso sin tener que crear un nuevo indice solo
> para el capo id2 pues considero que esto ralentizaria aun mas la consulta en
> lugar de optimizarla

Como ya te han dicho, un explain analyze ayudaria. Añadire que ademas
la definicion real de las tablas/indices es necesaria, el optimizador
es un bicho complicado y diferencias pequeñas en las definciones
pueden dar grandes diferencias en los resultados.

¿ Cuando dices que la busqueda la hace secuencial a que te refieres
exactamente ? ¿ Secuencial en el resultado de buscar id1, en toda la
tabla ?

Dicho esto, en general un indice por (id1, id2) te vale para buscar
por id1 o por ambos, pero no por id2. En tu caso puede que el
opitmizador no llegue a entender todo el query, y a veces puedes
mejorarlo pidiendo (id1=id2) and (id2=1 or id2=2 or id2=3), todo es
cuestion de probar.

Francisco Olarte.

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripcin:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Francisco Olarte 2015-10-24 10:41:46 Re: Consulta que no tome en cuenta las tildes
Previous Message Carlos Joaniquet 2015-10-23 22:03:31 Desactivar y activar un trigger o constraint desde sentencia SQL