|
October 16, 2015
|

Usando índices

Para um bom desempenho de um banco de dados, é necessária a criação de índices para agilizar o acesso a informações em consultas, remoções e alterações (que possuem cláusula WHERE).

Um índice acelera buscas em tabelas pois ao procurar uma informação não é necessário pesquisar todas as linhas de uma tabela e sim apenas parte delas (possivelmente só uma ou uma parte muito pequena). Isso porque os índices usam mecanismos como árvores b, b+ e hash, dependendo de sua densidade, dos tipos de dados, da maneira como são usados, de estatísticas e de dicas que o próprio DBA dá para o tipo de índice.
Um sistema de gerenciamento de banco de dados (SGBD) automaticamente cria índices para colunas de chaves primárias e com restrições de unicidade para tornar rápida a verificação das restrições. Então, não só não há a necessidade de criar índices para essas colunas como o seus usos inteligentes em operações que fazem consultas podem otimizar a velocidade da consulta. Por exemplo, usar uma coluna como essas numa comparação que não tenha negação no início de uma cláusula WHERE (ou ao final também dependendo do SGBD) pode diminuir drasticamente o número de linhas a serem efetivamente analisadas.
Quando as colunas usadas numa operação com busca não possuírem índice, dependendo do tamanho da tabela, pode ser necessário criar um ou mais índices simples ou compostos. Deve-se procurar criar índices que sejam usados em mais de uma consulta e que de fato sejam usados pela(s) operação(ões) necessárias. Colunas boas candidatas a índices são as altamente seletivas nas operações, que reduzam ao máximo o número de linhas da tabela a serem analisadas quando a condição aplicada a elas for satisfeita.
Para finalizar, é importante lembrar que não se deve sair criando índices indiscriminadamente. Às vezes um índice simples na coluna certa é o suficiente para deixar as operações que fazem busca na tabela sejam eficientes. Uma tabela com muitos índices tornam operações que alteram a tabela mais lenta pois é preciso atualizar todos os índices a cada operação. Mais ainda, um SGBD pode querer usar mais índices que não seriam necessários em uma consulta tornando-a ligeiramente mais lenta sem necessidade.

Comments

More articles

Afinal, é possível criar app sem saber programação?

November 16, 2018

Como transformar um website em aplicativo?

November 14, 2018

Aplicativos: O que conhecer antes de criar um

November 13, 2018

É possível instalar aplicativos Android no Windows?

November 9, 2018

LEAVE A COMMENT