2011-07-06 7 views

Respuesta

85

La mejor explicación viene from Tom Lane, que es el autor del algoritmo a menos que esté confundiendo. Vea también el wikipedia article.

En resumen, es un poco como un escaneo seq. La diferencia es que, en lugar de visitar cada página de disco, un índice de mapa de bits escanea ANDs y ORs indexa juntos, y solo visita las páginas de disco que necesita.

Esto es diferente de un recorrido de índice, donde el índice es visitado fila por fila en orden - es decir, una página de disco pueden quedar visitado varias veces.


Re: la pregunta en tu comentario ... Sí, eso es exactamente.

Un recorrido de índice pasará a través de las filas de uno en uno, la apertura de páginas de disco una y otra vez, tantas veces como sea necesario (algunos lo harán de la estancia de golf en la memoria, pero usted consigue el punto).

Una exploración de índice de mapa de bits abrirá secuencialmente una lista breve de páginas de disco, y tomará cada fila aplicable en cada una (de ahí la condición de volver a comprobar que ve en los planes de consulta).

Tenga en cuenta, como un aparte, cómo el orden de agrupación/fila afecta a los costes asociados con cualquiera de los métodos. Si las filas están por todas partes en un orden aleatorio, un índice de mapa de bits será más barato. (Y, de hecho, si realmente son todos sobre el lugar, un escaneo seq será el más barato, ya que un escaneo de índice de mapa de bits no está sin una sobrecarga.)

+0

Entonces, "escaneo de montón de mapa de bits": Una página no se puede visitar más de una vez! pero "Index Can": una página puede visitarse más de una vez, porque el índice se visita fila por fila en orden. – francs

Cuestiones relacionadas