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