A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Trabalho de Desenvolvimento

Apresentações semelhantes


Apresentação em tema: "Trabalho de Desenvolvimento"— Transcrição da apresentação:

1 Trabalho de Desenvolvimento
Índices do MySQL

2 Introdução Os índices em MySQL são, normalmente, armazenados em B-Trees, havendo excepções como os índices sobre colunas de tipo espacial, que usam R-Trees.

3 Potencialidades Para eliminar linhas que são consideradas: se for possível escolher entre mais do que um índice, o MySQL, normalmente, usa o que encontrar menos linhas. Em alguns casos uma query pode ser optimizada para encontrar valores sem consultar as linhas: se uma query apenas usar colunas de uma tabela que são numéricas e que formam o prefixo mais à esquerda de uma chave de índice, então os valores seleccionados podem ser encontrados a partir da árvore de índice.

4 Exemplo Se existe um índice multi-coluna em col1 e col2, as linhas pretendidas podem ser encontradas directamente. Se existirem dois índices, cada um sobre apenas uma coluna, o optimizador tenta encontrar o índice mais restritivo.

5 B-Tree Estes índices podem ser usados para comparação de colunas em expressões que usam os operadores =, >,>=, <, <= ou BETWEEN. Para o LIKE, só se o argumento é uma string constante que não começa com nenhum caracter “estranho”(wildcard character)

6 B-Tree Exemplo do funcionamento para o operador LIKE:
SELECT * FROM tbl_name WHERE key_col LIKE 'Patrick%'; Devolve linhas com ‘Patrick’ <= coluna < ‘Patricl’ SELECT * FROM tbl_name WHERE key_col LIKE 'Pat%_ck%'; Devolve linhas com ‘Pat’ <= coluna < ‘Pau’

7 Curiosidades Por vezes o MySQL não usa índices mesmo que estes existam. Se mesmo com o índice for necessário aceder a grande parte das linhas da tabela. Scan torna-se mais eficiente pois faz menos pesquisas. LIMIT faz com que seja usado índice na mesma pois pode encontrar mais rapidamente o número de linhas que são pretendidas.

8 Indíces Hash Apenas usados para comparações de igualdade ou desigualdade, não para intervalos. Não pode ser usado para optimizar a operação GROUP BY Não é possível determinar o # de linhas entre dois valores, logo não se pode escolher qual o índice a usar, se existirem dois ou mais. Apenas chaves de índice completas podem ser usadas para procurar uma linha.

9 Fontes http://dev.mysql.com/doc/refman/5.1/en/mysql-indexes.html


Carregar ppt "Trabalho de Desenvolvimento"

Apresentações semelhantes


Anúncios Google