From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Pablo Braulio <brulics(at)gmail(dot)com> |
Cc: | dkuroki(at)dbas(dot)com(dot)ar, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Ayuda con indices. |
Date: | 2005-10-18 04:17:14 |
Message-ID: | 20051018041714.GB23178@surnet.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Pablo Braulio escribió:
Hola,
> $select= "select id, empresa, equipo, usuario, programa, tipo_acceso, fecha,
> hora, fichero_accedido, registro_accedido from rev_accesos where fecha
> between '".$fecha_desde."' and '".$fecha_hasta."' and empresa='".
> $empresa."';";
>
> Es decir, lo que hago es una consulta filtrando por fechas y demás.
>
> ¿dices que para estos casos no es conveniente usar indices?.
Por favor muestra el EXPLAIN ANALYZE de la consulta. No creo que sea
muy complicado, si no tienes ningun indice, porque ademas estas usando
una sola tabla. Pero crea el indice en el campo empresa y nos dices si
lo usa o no.
En versiones 8.0 y anteriores, Postgres puede hacer un solo recorrido
para una tabla (es decir, puede hacer un seqscan, o bien un indexscan
usando un solo indice). En 8.1 es capaz de usar mas de un indice y
mezclarlos, con lo que la busqueda podria ser mucho mas eficiente. Si
estuvieras en 8.1 te diria que ademas del indice por el campo empresa,
crearas un indice en el campo fecha, que permitiera contestar la
calificacion del BETWEEN de una manera mas optima. (O quizas estoy
equivocado en esto ultimo ... es algo tarde aca ...)
Pero si no estas en 8.1 no hay mucho mas que puedas hacer ...
--
Alvaro Herrera http://www.PlanetPostgreSQL.org
"Cuando miro a alguien, más me atrae cómo cambia que quién es" (J. Binoche)
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2005-10-18 04:29:41 | Re: Corregirian algo de esta descripcion? |
Previous Message | Jaime Casanova | 2005-10-18 00:46:52 | Re: Ayuda con indices. |