Sobes.tech
Junior

¿Qué tipos de índices existen en las bases de datos?

sobes.tech AI

Respuesta de la IA

Los principales tipos de índices en bases de datos:

  1. B-tree (B+tree):

    • El tipo más común.
    • Adecuado para una amplia gama de operaciones: búsqueda por rango, coincidencia exacta, ordenamiento.
    • Se usa por defecto en muchos SGBD (MySQL, PostgreSQL, Oracle).
  2. Índices hash:

    • Basados en tablas hash.
    • Muy rápidos para búsquedas por coincidencia exacta (=).
    • No adecuados para búsquedas por rango (BETWEEN, <, >), ordenamiento (ORDER BY) o búsqueda por patrón (LIKE).
  3. Índices de texto completo:

    • Diseñados para búsquedas en campos de texto (BLOB, TEXT).
    • Permiten buscar palabras o frases, considerar sinónimos y realizar análisis morfológico.
    • Ejemplos: MATCH...AGAINST en MySQL/MariaDB, tsvector/tsquery en PostgreSQL.
  4. Índices espaciales (R-tree):

    • Utilizados para indexar datos geográficos o espaciales.
    • Permiten encontrar objetos en una área o límites específicos de manera eficiente.
  5. Bitmap (mapa de bits):

    • Usado en algunos SGBD (por ejemplo, Oracle, PostgreSQL).
    • Adecuado para campos con baja cardinalidad (pocos valores únicos, por ejemplo, género, estado: activo/inactivo).
    • Puede ser muy eficiente para consultas complejas con operaciones AND y OR.
  6. Índice clusterizado:

    • Afecta el orden físico de almacenamiento de las filas de datos.
    • Solo puede haber un índice clusterizado en una tabla.
    • Frecuentemente usado para la clave primaria.
  7. Índice no clusterizado:

    • No determina el orden físico de las filas.
    • Contiene punteros a la ubicación física de las filas de datos.
    • Una tabla puede tener varios índices no clusterizados.
  8. Índice cubriente (covering):

    • Un índice que contiene todas las columnas necesarias para ejecutar una consulta, incluyendo columnas en SELECT, condiciones en WHERE y ORDER BY.
    • Permite que el SGBD no tenga que acceder a los datos de la tabla, acelerando la consulta.
  9. Índice funcional (por expresión):

    • Índice construido sobre el resultado de una función o expresión en una o varias columnas.
    • Permite indexar valores calculados.

Al elegir el tipo de índice, se considera el tipo de datos, la frecuencia y naturaleza de las consultas (búsqueda por valor exacto, rango, ordenamiento, búsqueda de texto completo, etc.) y la cardinalidad de la columna.