sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo se decide el escaneo de mapa de bits y el escaneo de índice?

¿Cuántas filas tiene en total en la tabla? La decisión se basa en qué proporción de las filas generará el análisis de índice.

Si se va a acceder a una proporción suficientemente alta de la tabla, se utiliza un escaneo de índice de mapa de bits para garantizar que la mayor parte posible del acceso al disco sea secuencial. Por el contrario, un escaneo de índice simple hace un acceso aleatorio de una página a la vez a los datos de la tabla. (Y si la proporción de la tabla a la que se proyecta acceder es lo suficientemente alta, el índice no se usa en absoluto y todos los datos de la tabla se cargan secuencialmente)

Un problema es que la proyección de cuántas filas de la tabla se accederá es solo una estimación. Pero como puede imaginar, es probable que 'IT%' coincida con más que 'ITQ%' (recuerde que el sufijo no es parte del escaneo de índice, solo el filtro final)