🧠 Explicação
Um INDEX
(índice) é uma estrutura auxiliar que o DB2 usa pra acelerar as buscas, especialmente em colunas muito consultadas ou envolvidas em WHERE
, JOIN
e ORDER BY
.
Pensa no índice como o índice de um livro: ele não muda o conteúdo, mas te leva direto ao ponto.
Sem índice, o banco tem que varrer tudo (full scan); com índice, ele vai direto onde precisa.
🔧 Usos mais comuns
-
Acelerar buscas por chave primária, colunas únicas ou filtros frequentes.
-
Otimizar joins entre tabelas grandes.
-
Melhorar performance de ordenações (
ORDER BY
). -
Criar índice exclusivo pra impedir duplicidade (como CPF ou matrícula).
-
Suporte pra
UNIQUE
,PRIMARY KEY
eFOREIGN KEY
(muitos deles geram índice automático).
🧾 Sintaxe
Criar um índice simples:
CREATE INDEX nome_do_indice
ON nome_da_tabela (coluna1 [ASC|DESC]);
Criar índice único:
CREATE UNIQUE INDEX nome_do_indice
ON nome_da_tabela (coluna1);
Excluir índice:
DROP INDEX nome_do_indice;
💻 Exemplo prático
Índice para acelerar buscas por CPF:
CREATE INDEX idx_empregados_cpf
ON empregados (cpf);
Índice exclusivo para matrícula:
CREATE UNIQUE INDEX idx_empregados_matricula
ON empregados (matricula);
Removendo um índice:
DROP INDEX idx_empregados_cpf;
📌 Regras
-
Índices não alteram os dados nem mudam o resultado das consultas.
-
Você pode criar índices em uma ou mais colunas (índice composto).
-
Índices consomem espaço em disco e impactam INSERT/UPDATE/DELETE, pois precisam ser atualizados.
-
O nome do índice precisa ser único no banco, não só na tabela.
-
DB2 pode criar índices automaticamente ao definir
PRIMARY KEY
,UNIQUE
,FOREIGN KEY
.
💡 Dicas
-
Crie índice somente em colunas que realmente precisam — índice demais deixa o banco mais lento.
-
Use índice composto com cuidado: a ordem das colunas importa!
-
Evite criar índices em colunas com alta cardinalidade de valores nulos.
-
Consulte o plano de execução (
EXPLAIN
) pra saber se o índice está sendo usado. -
Dê nomes significativos (
idx_tabela_coluna
) pra facilitar manutenção.
✅ Conclusão
Índices são armas poderosas pra performance, mas precisam ser usados com consciência. Criar índice à toa é que nem colocar radar em rua de terra: não serve pra nada e ainda atrapalha. O segredo é medir, testar e usar com sabedoria.