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)
--
TIP 1: para suscribirte y desuscribirte, visita 
http://archives.postgresql.org/pgsql-es-ayuda

Responder a