Baixe o app para aproveitar ainda mais
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 ???
Compartilhar