Como usar índices para acelerar consultas no banco de dados
Um índice é uma estrutura de dados auxiliar que o banco cria para acelerar a busca de registros. Funciona como o índice de um livro. Ao invés de ler página por página, você vai direto ao que precisa.
Sem índice, o banco precisa varrer a tabela inteira para encontrar os registros que atendem à condição do WHERE. Em tabelas grandes, isso é lento. Com um índice na coluna certa, a busca é muito mais rápida.
Carregando...
Por convenção, o nome do índice começa com idx_ seguido do nome da tabela e da coluna.
O banco decide sozinho quando usar o índice. Ele costuma ser aplicado quando:
Carregando...
Além de acelerar as buscas, um índice único impede valores duplicados. Funciona de forma parecida com a constraint UNIQUE:
Carregando...
Carregando...
Carregando...
Índices aceleram leituras, mas têm custo em escritas. Cada INSERT, UPDATE e DELETE precisa atualizar também os índices da tabela. Por isso:
WHERE, JOIN e ORDER BY;ativo = true/false) raramente se beneficiam de índice.Primary Keys e colunas com
UNIQUEjá criam índices automaticamente, ou seja, você não precisa criá-los manualmente nesses casos.