Este tutorial visa apresentar o que são, porque usar e quando usar índices.
Índice é simplesmente um ponteiro para um dado na tabela. Por exemplo, um livro possui um índice,e neste índice é indicado o número da página que se encontra determinado assunto, no qual irá facilitar encontrar o assunto com maior rapidez. A mesma coisa acontece com os índices.
Ao invés de procurar por todos os dados de uma tabela, é verificado no índice, aonde se encontra determinado dado.
Como os índices funcionam?
Quando uma query é executada, e existe uma condição na cláusula Where que está indexada, é procurado
primeiramente nos índices para encontrar o local exato aonde se encontra aquele dado.Caso não tenha
encontrado nenhum índice, é feita uma procura na tabela inteira.
Criando um índice:
CREATE INDEX nome_indice ON nome_tabela (nome_coluna)Índices únicos:
Índice único não permite valores duplicados em uma tabela.
CREATE UNIQUE INDEX nome_indice ON nome_tabela (nome_coluna)Índices compostos:
Índice que é composto por duas ou mais colunas. A escolha de quem vem primeiro no índice pode gerar problemas de performance, por isso é recomendável sempre escolher o indice mais restrito (único) como o primeiro e o menos restrito como segundo.
CREATE UNIQUE INDEX nome_indice ON nome_tabela (nome_coluna1, nome_coluna2)
Quando é aconselhável usar índices?
- Para PKs o uso de índice é implícito.
- Para todas as FKs deveriam ser criados índices.
- Colunas que são geralmente referencias por ORDER BY e GROUP BY
- Colunas que geralmente são usadas em cláusulas WHERE e possui valores mais restritos (únicos)
Quando não é aconselhável o uso de índices?
- Tabelas pequenas
- Em colunas que retornam uma grande quantidade de dados.
Exemplo:
Select * from Pessoas where ds_sexo='Masculino'você não irá encontrar no indice de uma lista telefônica separação por sexo, mas sim pela inicial de cada nome.
- Colunas que possam ter muitos valores nulos
Muito Bom
ResponderExcluir