Sobes.tech
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.