From: | Felipe Fernandez <danielfm(at)teleline(dot)es> |
---|---|
To: | Martin Marques <martin(at)bugs(dot)unl(dot)edu(dot)ar>, postgresql <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Indices |
Date: | 2004-08-02 13:06:15 |
Message-ID: | 410E3C47.8080503@teleline.es |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
La tabla tiene unos 8 millones de registros y repartidos entre 52
provincias y cerca de 9000 localidades
Martin Marques wrote:
>El Sáb 31 Jul 2004 20:52, Felipe Fernandez escribió:
>
>
>>Tengo definidos estos dos indices exactamente igual en una query los
>>utiliza y en otra no ¿Alguien me puede indicar porque?
>>
>>
>>basedatos=#explain SELECT * FROM ABONADOS WHERE localidad= '38038' ;
>> QUERY PLAN
>>---------------------------------------------------------------------------
>>------------------ Index Scan using abonados_localidad on abonados
>>(cost=0.00..43338.81 rows=12888 width=106)
>> Index Cond: (localidad = 38038)
>>(2 rows)
>>
>>
>
>La tabla tiene (o al menos las estadísticas dicen eso) 38038 filas.
>
>
>
>>basedatos=# explain SELECT * FROM ABONADOS WHERE provincia = '38' ;
>> QUERY PLAN
>>-------------------------------------------------------------------
>> Seq Scan on abonados (cost=0.00..236186.08 rows=88809 width=106)
>> Filter: (provincia = 38)
>>(2 rows)
>>
>>
>
>Esta tabla tiene solo 38, por lo que es mas conveniente hacer una busqueda
>secuencial y no usar el índice.
>
>El planner decide si va a usar un índice o no dependiendo de las estadísticas
>recogidas, y si la tabla tiene 5 registros nomas, siempre va a ser mas rápido
>hacer una busqueda secuencial que usar un índice.
>
>Espero te sirva la explicación.
>
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Hector Choque Reyes | 2004-08-02 14:58:32 | Majordomo results: Desuscribir |
Previous Message | Martin Marques | 2004-08-02 12:07:46 | Re: Indices |