sql >> Base de Datos >  >> RDS >> Oracle

Índices de base de datos B-Tree vs Bitmap

De wikipedia:B-Trees y índices de mapa de bits . Los casos de uso:

  • Los árboles B son el tipo de índice típico que se usa cuando CREATE INDEX ... en una base de datos:

    1. Son muy rápidos cuando está seleccionando solo un pequeño subconjunto de los datos del índice (5%-10% como máximo típicamente)
  • Funcionan mejor cuando tiene muchos valores indexados distintos.
  • Se puede combinar varios índices B-Tree, pero los enfoques más simples suelen ser más eficientes.
  • No son útiles cuando hay pocos valores distintos para los datos indexados o cuando desea obtener un subconjunto grande (>10 % por lo general) de los datos.
  • Cada índice B-Tree impone una pequeña penalización al insertar/actualizar valores en la tabla indexada. Esto puede ser un problema si tiene muchos índices en una tabla muy ocupada.

  • Estas características hacen que los índices B-Tree sean muy útiles para acelerar las búsquedas en aplicaciones OLTP, cuando trabaja con conjuntos de datos muy pequeños a la vez, la mayoría de las consultas se filtran por ID y desea un buen rendimiento simultáneo.

  • Los índices de mapa de bits son una variante de índice más especializada:

    1. Codifican valores indexados como mapas de bits y, por lo tanto, son muy eficientes en cuanto al espacio.
    2. Tienden a funcionar mejor cuando hay pocos valores indexados distintos
    3. Los optimizadores de base de datos pueden combinar varios mapas de bits indexados muy fácilmente, lo que permite una ejecución eficiente de filtros complejos en las consultas.
    4. Son muy ineficientes al insertar/actualizar valores.


    Los índices de mapa de bits se usan principalmente en aplicaciones de almacenamiento de datos, donde la base de datos es de solo lectura, excepto para los procesos ETL, y generalmente necesita ejecutar consultas complejas contra un esquema en estrella , donde los índices de mapas de bits pueden acelerar el filtrado en función de las condiciones de las tablas de dimensiones, que normalmente no tienen demasiados valores distintos.

Como resumen muy breve:use índices B-Tree (el índice "predeterminado" en la mayoría de las bases de datos) a menos que sea un desarrollador de almacenamiento de datos y sabe se beneficiará de un índice de mapa de bits.