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

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

Trabalho de Desenvolvimento Índices do MySQL. Introdução Os índices em MySQL são, normalmente, armazenados em B-Trees, havendo excepções como os índices.

Apresentações semelhantes


Apresentação em tema: "Trabalho de Desenvolvimento Índices do MySQL. Introdução Os índices em MySQL são, normalmente, armazenados em B-Trees, havendo excepções como os índices."— 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. 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. 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. 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. 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) 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: Exemplo do funcionamento para o operador LIKE: SELECT * FROM tbl_name WHERE key_col LIKE 'Patrick%'; SELECT * FROM tbl_name WHERE key_col LIKE 'Patrick%'; Devolve linhas com Patrick <= coluna < Patricl Devolve linhas com Patrick <= coluna < Patricl SELECT * FROM tbl_name WHERE key_col LIKE 'Pat%_ck%'; SELECT * FROM tbl_name WHERE key_col LIKE 'Pat%_ck%'; Devolve linhas com Pat <= coluna < Pau Devolve linhas com Pat <= coluna < Pau

7 Curiosidades Por vezes o MySQL não usa índices mesmo que estes existam. 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. 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. 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. 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 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. 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. Apenas chaves de índice completas podem ser usadas para procurar uma linha.

9 Fontes mysql-indexes.html mysql-indexes.html multiple-column-indexes.htm multiple-column-indexes.htm ndexes.html ndexes.html


Carregar ppt "Trabalho de Desenvolvimento Índices do MySQL. Introdução Os índices em MySQL são, normalmente, armazenados em B-Trees, havendo excepções como os índices."

Apresentações semelhantes


Anúncios Google