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:
-
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).
-
Í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).
-
Í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...AGAINSTen MySQL/MariaDB,tsvector/tsqueryen PostgreSQL.
-
Í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.
-
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
ANDyOR.
-
Í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.
-
Í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.
-
Índice cubriente (covering):
- Un índice que contiene todas las columnas necesarias para ejecutar una consulta, incluyendo columnas en
SELECT, condiciones enWHEREyORDER BY. - Permite que el SGBD no tenga que acceder a los datos de la tabla, acelerando la consulta.
- Un índice que contiene todas las columnas necesarias para ejecutar una consulta, incluyendo columnas en
-
Í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.