From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Fernando Hevia <fhevia(at)ip-tel(dot)com(dot)ar> |
Cc: | 'Sebastian Machuca' <serroba(at)gmail(dot)com>, 'Jaime Casanova' <jcasanov(at)systemguards(dot)com(dot)ec>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: El indice no mejora me mejora el rendimiento de mis consultas. |
Date: | 2009-08-28 15:12:48 |
Message-ID: | 20090828151248.GD7070@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Fernando Hevia escribió:
> Pero si quisieras buscar únicamente "zorro" gracias al índice que te
> presenta los datos ordenados podrás aplicar un algoritmo de búsqueda para
> obtener rápidamente las entradas existentes:
> zorro:1
> zorro:7
>
> Con esto sabrías que en tu archivo de datos hay entradas para "zorro" en las
> filas 1 y 7. Ahora puedes leer directamente esos 2 registros sin necesidad
> de barrer todo el archivo.
Otra ventaja es que el índice tiene "niveles" que se van descendiendo, o
sea hay un primer nivel que dice "a:2, f:4, ..., w:7" (donde los números
son páginas del índice), y así si quieres buscar algo con z sabes que
tienes que leer la página 7 del índice donde encontrarás todo lo que
empieza con Z en adelante. Con dos lecturas del disco ya encontraste
dónde están los zorros en la tabla.
Ahora, como decía Jaime, en Postgres cuando uno borra un registro o lo
actualiza, este no se borra inmediatamente de la tabla sino que queda
marcado como borrado. Tampoco se borra del índice. Entonces si viene
alguien y cambia la foto de un zorro, el índice ahora tiene 3 zorros, y
el lector tiene que mirar los tres en la tabla y ver cuáles están vivos
y cuáles ya fueron cazados.
--
Alvaro Herrera Developer, http://www.PostgreSQL.org/
"Estoy de acuerdo contigo en que la verdad absoluta no existe...
El problema es que la mentira sí existe y tu estás mintiendo" (G. Lama)
From | Date | Subject | |
---|---|---|---|
Next Message | Edwin Quijada | 2009-08-28 16:16:15 | Ayuda con funcion en C |
Previous Message | Alvaro Herrera | 2009-08-28 15:06:22 | Re: rendimiento 8.2 VS 8.3 |