Junior
¿Qué es la indexación en el contexto de bases de datos o colecciones?
sobes.tech AI
Respuesta de la IA
La indexación es una técnica de optimización del rendimiento al recuperar datos.
En las bases de datos, un índice es una estructura (por ejemplo, un árbol B) que permite encontrar rápidamente filas en una tabla sin recorrer toda la tabla. Se crea en una o varias columnas.
En colecciones (por ejemplo, ArrayList en Java), la indexación está incorporada. Los elementos se almacenan en una secuencia ordenada, y el acceso a cualquier elemento por índice (su número de orden) se realiza en O(1).
Los principales objetivos de la indexación:
- Acelerar la ejecución de consultas: Especialmente para operaciones
SELECTcon condicionesWHEREyJOIN. - Garantizar la unicidad: Los índices únicos garantizan que los valores en la columna indexada o en la combinación de columnas sean únicos.
- Soporte para ordenamiento: Los índices pueden usarse para ordenar rápidamente los resultados (
ORDER BY).
Ejemplos de uso en SQL:
-- Crear un índice en la columna price
CREATE INDEX idx_products_price ON products (price);
-- Crear un índice compuesto en las columnas customer_id y order_date
CREATE INDEX idx_orders_customer_date ON orders (customer_id, order_date);
En colecciones, acceso por índice:
// Obtener elemento por índice
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
String firstElement = names.get(0); // Acceso por índice 0
Desventajas de la indexación:
- Ocupa espacio adicional en disco.
- Las operaciones de modificación de datos (INSERT, UPDATE, DELETE) son más lentas, ya que es necesario actualizar también el índice.
- No siempre son utilizados por el optimizador de consultas (por ejemplo, en escaneos completos de la tabla).