SQL - índices

Índices são special lookup tablesque o mecanismo de pesquisa de banco de dados pode usar para acelerar a recuperação de dados. Simplificando, um índice é um ponteiro para dados em uma tabela. Um índice em um banco de dados é muito semelhante a um índice no final de um livro.

Por exemplo, se quiser fazer referência a todas as páginas de um livro que discute um determinado tópico, consulte primeiro o índice, que lista todos os tópicos em ordem alfabética e, em seguida, é referido a um ou mais números de página específicos.

Um índice ajuda a acelerar SELECT consultas e WHERE cláusulas, mas retarda a entrada de dados, com o UPDATE e a INSERTafirmações. Os índices podem ser criados ou eliminados sem nenhum efeito nos dados.

Criar um índice envolve o CREATE INDEX instrução, que permite nomear o índice, especificar a tabela e qual coluna ou colunas indexar e indicar se o índice está em ordem crescente ou decrescente.

Os índices também podem ser únicos, como o UNIQUE restrição, na medida em que o índice evita entradas duplicadas na coluna ou combinação de colunas nas quais há um índice.

O comando CREATE INDEX

A sintaxe básica de um CREATE INDEX é o seguinte.

CREATE INDEX index_name ON table_name;

Índices de coluna única

Um índice de coluna única é criado com base em apenas uma coluna da tabela. A sintaxe básica é a seguinte.

CREATE INDEX index_name
ON table_name (column_name);

Índices Únicos

Índices exclusivos são usados ​​não apenas para desempenho, mas também para integridade de dados. Um índice exclusivo não permite que nenhum valor duplicado seja inserido na tabela. A sintaxe básica é a seguinte.

CREATE UNIQUE INDEX index_name
on table_name (column_name);

Índices Compostos

Um índice composto é um índice em duas ou mais colunas de uma tabela. Sua sintaxe básica é a seguinte.

CREATE INDEX index_name
on table_name (column1, column2);

Seja para criar um índice de coluna única ou um índice composto, leve em consideração a (s) coluna (s) que você pode usar com muita frequência na cláusula WHERE de uma consulta como condições de filtro.

Se houver apenas uma coluna usada, um índice de coluna única deve ser a escolha. Se houver duas ou mais colunas que são freqüentemente usadas na cláusula WHERE como filtros, o índice composto seria a melhor escolha.

Índices implícitos

Índices implícitos são índices criados automaticamente pelo servidor de banco de dados quando um objeto é criado. Os índices são criados automaticamente para restrições de chave primária e restrições exclusivas.

O comando DROP INDEX

Um índice pode ser eliminado usando SQL DROPcomando. Deve-se ter cuidado ao eliminar um índice, pois o desempenho pode diminuir ou melhorar.

A sintaxe básica é a seguinte -

DROP INDEX index_name;

Você pode verificar o capítulo de restrição INDEX para ver alguns exemplos reais de índices.

Quando os índices devem ser evitados?

Embora os índices tenham como objetivo aprimorar o desempenho de um banco de dados, há momentos em que eles devem ser evitados.

As diretrizes a seguir indicam quando o uso de um índice deve ser reconsiderado.

  • Os índices não devem ser usados ​​em tabelas pequenas.

  • Tabelas que têm atualizações em lote frequentes e grandes ou operações de inserção

  • Os índices não devem ser usados ​​em colunas que contêm um grande número de valores NULL.

  • As colunas que são frequentemente manipuladas não devem ser indexadas.