Junior
O que é indexação no contexto de bancos de dados ou coleções?
sobes.tech IA
Resposta da IA
A indexação é uma técnica de otimização de desempenho na recuperação de dados.
Em bases de dados, um índice é uma estrutura (por exemplo, uma árvore B) que permite encontrar rapidamente linhas numa tabela, sem percorrer toda a tabela. É criado numa ou várias colunas.
Em coleções (por exemplo, ArrayList em Java), a indexação está incorporada. Os elementos são armazenados numa sequência ordenada, e o acesso a qualquer elemento por índice (o seu número de ordem) é feito em O(1).
Principais objetivos da indexação:
- Acelerar a execução de consultas: Especialmente para operações
SELECTcom condiçõesWHEREeJOIN. - Garantir a unicidade: Índices únicos garantem que os valores na coluna indexada ou na combinação de colunas sejam únicos.
- Suporte para ordenação: Os índices podem ser usados para ordenar rapidamente os resultados (
ORDER BY).
Exemplos de uso em SQL:
-- Criar um índice na coluna price
CREATE INDEX idx_products_price ON products (price);
-- Criar um índice composto nas colunas customer_id e order_date
CREATE INDEX idx_orders_customer_date ON orders (customer_id, order_date);
Em coleções, acesso por índice:
// Obter elemento por índice
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
String firstElement = names.get(0); // Acesso por índice 0
Desvantagens da indexação:
- Ocupa espaço adicional em disco.
- Operações de alteração de dados (INSERT, UPDATE, DELETE) tornam-se mais lentas, pois é necessário atualizar também o índice.
- Nem sempre são utilizados pelo otimizador de consultas (por exemplo, em varreduras completas de tabela).