Re: El indice no mejora me mejora el rendimiento de mis consultas.

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)

In response to

Browse pgsql-es-ayuda by date

  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