Buscar

Indices - Parte 2 (indices2.pdf)

Prévia do material em texto

Banco de Dados
Indices – Parte 2
anderson fonseca
Agenda
- Ìndices – Parte 2
Ìndices
Junção de tabelas com um índice
Um segundo benefício de índices é melhorar a performance ao unir tabelas 
relacionais. Por exemplo, o seguinte comando SQL recupera os albuns de um 
determinado artista.
Ìndices
Junção de tabelas com um índice
Ìndices
Junção de tabelas com um índice
Ìndices
Cardinalidade de índices
Quando utilizamos diferentes índices que podem ser utilizados em uma 
consulta. O banco de dados tenta identificar o índice mais efetivo para a 
consulta.
Ìndices
Cardinalidade de índices
O otimizador escolhe um índice baseado no custo estimado para fazer o menor 
esforço possível. Vejamos as cardinalidades que confirmam a razão dessa 
decisão.
SET @@session.optimizer_switch='index_merge_intersection=off';
Ìndices
Ìndices
Cardinalidade de índices
Cardinalidade é maior número de valores únicos.
Selectividade é definido como o número de valores distintos em relação ao 
número de registros na tabela. 
- O ideal é valor igual 1;
- Ruim quando existem poucos valores distintos.
Ìndices
Cardinalidade de índices
Ìndices
Cardinalidade de índices
Ìndices
Utilizando wildcards para buscas parciais com índices
O que acontece se você colocar o '%' antes do termo de busca?
Ìndices
Definindo a Linha como INDEX UNIQUE
Se quisermos garantir que os artistas tenham um nome único, criamos um 
índice do tipo UNIQUE.
- Vantagens
- Garante uma única ocorrência do valor;
- Informa ao otimizador que existe no máximo um valor para um registro.
Ìndices
Definindo a Linha como INDEX UNIQUE
Ìndices
Ìndices
Ordenando Resultados
Um índice pode ser utilizado para ordenar os resultados. Sem um índice o 
Banco de Dados utiliza um filesort interno para retornar as linhas na ordem 
pedida.
Ìndices
Ìndices
Ìndices
Índice de Multiplas Colunas
Um índice pode ter duas ou mais colunas, conhecidas como índices compostos 
ou concatenados.
Determinando que tipo de índice utilizar
Ìndices
Índice de Multiplas Colunas
Ìndices
Índice de Multiplas Colunas
Efetivamente existe um limite pratico na criação de índices. O tamanho da 
largura do índice deve ser o tão curto quanto possível, para que seja 
atravessado a quantidade a ser lida o mais rápido possível.
Ìndices
Índice de Multiplas Colunas
Efetivamente existe um limite pratico na criação de índices. O tamanho da 
largura do índice deve ser o tão curto quanto possível, para que seja 
atravessado a quantidade a ser lida o mais rápido possível.
Ìndices
Combinando WHERE e ORDER BY
É possível utilizar um índice de multiplas colunas para otimizar a combinação de 
WHERE e ORDER BY.
Ìndices
Combinando WHERE e ORDER BY
Ìndices
Impactos na utilização de Índices
- Adicionar indices em tabelas afetam a performance de escritas.
- Isto pode ser facilmente verificado na tabela ALBUM, através da definição da 
mesma.
Ìndices
Impactos na utilização de Índices
Criar uma tabela com a mesma estrutura de ALBUM sem índices e inserir os 
dados contidos em ALBUM nesta nova tabela. Verificar os tempos de execução.
Ìndices duplicados
Uma das melhores tecnicas para otimização é remover indices duplicados.
Ocorrências comuns são índices de chaves-primarias ou indices que são 
subconjuntos de outros indices.
Qualquer indice que está contido dentro da porção mais a esquerda de outro 
indice é um indice duplicado que não sera utilizado.
Ìndices
Ìndices
Impactos na utilização de Índices
Espaço em disco
Verificar o tamanho de tabelas com e sem índices:
Ìndices
Melhoria na utilização de Ìndices
Um dos motivos para não utilizar o * nas consultas SQL.
Dúvidas ???

Continue navegando