Junior — Middle
Qual é o papel dos índices numa base de dados SQL e como eles afetam o desempenho das consultas?
sobes.tech IA
Resposta da IA
Os índices em bases de dados SQL são estruturas de dados especiais que aceleram a pesquisa e recuperação de dados das tabelas. Funcionam como ponteiros para as linhas da tabela, permitindo ao SGBD encontrar rapidamente os registos necessários sem percorrer toda a tabela.
Papel dos índices:
- Aceleram as operações SELECT, especialmente com condições WHERE, JOIN, ORDER BY.
- Podem ser usados para garantir a unicidade dos valores (índices únicos).
- Ajudam o otimizador de consultas a escolher planos de execução eficientes.
Impacto na performance:
- Positivo: reduzem significativamente o tempo de execução de consultas com filtragem em colunas indexadas.
- Negativo: atrasam operações INSERT, UPDATE, DELETE, pois os índices precisam de ser atualizados.
Exemplo: se tiver uma tabela de utilizadores com milhões de registos, procurar um utilizador por email sem índice será lento, mas com índice será rápido.
CREATE INDEX idx_users_email ON users(email);
SELECT * FROM users WHERE email = 'example@example.com';
O índice permitirá à base de dados encontrar rapidamente a linha necessária sem percorrer toda a tabela.