From: | Sergio Valdes Hurtado <svh(dot)pgsql(at)gmail(dot)com> |
---|---|
To: | Alejandro Carrillo <fasterzip(at)yahoo(dot)es> |
Cc: | Lista PostgreSql <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: [pgsql-es-ayuda] Creación de Indices |
Date: | 2012-06-21 21:33:29 |
Message-ID: | CA+TBOYL_b_d6UmpTCKw7gnPArmfTk9xoZg8bbyn84A5aG==TQg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El 21 de junio de 2012 17:06, Alejandro Carrillo <fasterzip(at)yahoo(dot)es>escribió:
> 1) Crea un indice por cada campo que vayas a filtrar con frecuencia: rbd,reg_cod,ano_pago,
> ind_reli,rut_sost ; es decir no crees indices compuestos ya que estos
> exigen que la consulta se haga por todos los campos.
>
> En realidad las tres consultas son ídenticas, sólo cambian en el where ,
ya que una es rbd in (..), la otra es rut_sost in(..) y la última reg_cod
in (..). La primera trae pocos datos ya que normalmente se pregunta por uno
o dos rbd, la segunta trae mas datos, ya que un rut_sost puede tener varios
rbd y la última es la que mas datos trae, ya que un reg_cod tiene muchos
rut_sost.
¿Debo crear índices distintos para cada una de las consultas?
¿Deben ser índividuales o compuestos?
2) Si la tabla tiene foráneas pertenecientes a otra tabla, estas deben
tener índice
No tiene llaves foráneas
3) No hagas un IN por un sólo valor, es más rápido usar = que IN
Lo uso por comodidad, ya que normalmente debemos consultar por mas de un
rbd o rut_sost o reg_cod
4) Me parece que esa tabla debe estar en su propio tablespace o en un
tablespace para tablas grandes.
--
Sergio Valdés H.
From | Date | Subject | |
---|---|---|---|
Next Message | Felipe de Jesús Molina Bravo | 2012-06-21 21:49:32 | Re: Migrar bd de pgsql 8.1.8 a 9.1.3. cast character to integer |
Previous Message | Alvaro Herrera | 2012-06-21 21:19:46 | Re: Re: [pgsql-es-ayuda] Creación de Indices |