DesenvolvimentoBanco de DadosÍndices de Múltiplas Colunas ASC e DESC, faz diferença?

Índices de Múltiplas Colunas ASC e DESC, faz diferença?

-

Índices de Múltiplas Colunas ASC e DESC, faz diferença?Olá pessoal! Tudo bem?

Alguns estiveram conosco lá no IMasters Developer Week em Vitória e foi muito bacana! Obrigado ao pessoal da IMasters por todo apoio, PH e Tiago pela oportunidade. Muito obrigado também à Móveis Simonetti por todo apoio para que pudéssemos estar naquele evento nas pessoas do nosso diretor de TI e de nosso presidente.

No último post, tivemos uma ótima pergunta do giqu1eu sobre índices.

Algumas coisas aconteceram e acabei não respondendo logo à pergunta no POST, então gerei esse aqui só pra dar a resposta.

Para quem não se lembra, vamos à pergunta e então à resposta completinha:

#########################

giqu1eu28 de fevereiro de 2015 18:06

Olá Marcelo, tdo bem? Comecei acompanhar seu blog, obrigado pelo material, dicas e afins que estão disponíveis no blog!

Um certo dia li em algum lugar que não é recomentado criar no mesmo Indice duas colunas com declaração de “Order” diferentes:

INDEX `w1` (`data` ASC, `valor` DESC))

sendo o recomendado que tanto DATA como VALOR sejam da mesma ordem, ASC ou DESC:

INDEX `w1` (`data` ASC, `valor` ASC)) ou INDEX `w1` (`data` DESC, `valor` DESC)).

Isso procede? Qual o impacto par o otimizador?

[]’s

Essa pergunta foi bem interessante, nunca havia pensado nessa possibilidade.

Cortando a própria CARNE

Então pesquisei o material do meu banco predileto (MySQL) na base Oracle de conhecimento. E só encontrei a parte de como o banco usa o índice. O que acabou gerando uma pequena errata em relação ao último POST, em relação ao uso de índices. Então vamos logo esclarecendo (aqui é que vai doer na carne) que o índice não será usado para ordenação, apenas para busca. Ou seja, apenas a cláusula WHERE ou o ON do JOIN utilizará o índice. Resumindo o índice é usado para encontrar o que queremos e não para ordenar o que achamos. A ordenação ocorre no buffer de ordenação do seu banco.

Dito isto, vamos à resposta do GIGU: Quando criamos um índice com duas colunas, o índice armazenará o endereço primeiro com a primeira coluna do índice, na ordem em que definirmos. E Então para cada valor da primeiro coluna irá armazenar o endereço de cada linha de registro da segunda coluna do índice, na ordem em que definimos. É por isso que o índice de duas colunas substitui o mesmo índice apenas com a primeira coluna daquele mesmo índice.

Como normalmente que usamos a cláusula WHERE ou JOIN, não estamos interessados na ordem, mas em uma faixa de valores ou valores específicos NÃO FAZ DIFERENÇA em relação ao número de registros.

Porém, vale ressaltar que, em geral, criamos índices na ordem normal (ASCendente e não DESCencente)

Extrapolando agora as possibilidades

Mas, voltando ao exemplo da tabela VENDA, pensei na seguinte possibilidade e gostaria de ter a resposta de vocês. Se um índice pode ter ordem, ASC ou DESC, e eu criar um índice DESC com a data de venda, vocês concordam que no início do índice teremos primeiro os endereços dos registros das últimas vendas (a não ser é claro casos de vendas inseridas depois, etc)??? E como normalmente temos mais interesse em registros recentes do que em registros antigos, faz mais sentido montar índices de campos de data ordenados de forma DESCendente, correto?

Eu peguei a tabela Montagens utilizada na palestra do DevWeekVix e fiz essa experiência. Criei primeiro um índice com data de montagem ASCendente, e busca registros recentes. A busca levou 46 milésimos de segundo para recuperar 8mil registros. Com o índice DESCendente a mesma busca levou 37 milésimos de segundo. O número de linhas percorridas foi exatamente o MESMO.

Então faz diferença criar ASC ou DESC???

Não aceito ainda essa como a resposta definitiva. Por isso, prometo fazer mais testes com esse tipo de índice com campo DATE, Inteiro e datetime e trazer novidades no próximo POST no fim de Abril, OK?

Abração a Todos e até a próxima!
Seu amigo, Marcelo Raposo!

[Crédito da Imagem: Índice de Múltiplas Colunas – ShutterStock]

Marcelo Manuel Quádrio Raposohttp://rapososistemas.blogspot.com.br/
É desde 2006 Analista/Desenvolvedor na Móveis Simonetti Desenvolvedor Certificado pela Oracle MySQL Tecnólogo em Análise e Desenvolvimento de Sistemas pelo IFES É Apaixonado pela Vida, pela Família, pelo Trabalho Amante de desafios Desde 2010 vive a aventura fantástica de ser pai!

Latest news

4 bons conceitos para apoiar a sua identidade de marca

No mercado, existem marcas que, ao falar seus nomes, rapidamente associamos com determinadas palavras que são boas para quem...

Estratégia de comunicação B2B para redes sociais: dos posts para as vendas!

Adaptar seu conteúdo permite experimentar diferentes maneiras de mostrar sua empresa de TI, os benefícios dos seus serviços e não ser tão repetitivo com algumas táticas.

IA para MSPs: como a inteligência artificial está transformando o mercado de serviços gerenciados

A Inteligência Artificial (IA) está desempenhando um papel crucial na transformação dos Prestadores de Serviços Gerenciados (MSPs). Mais do...

O que é integração de sistemas de RH e como ela facilita o trabalho?

A integração de sistemas de RH traz muitos benefícios, principalmente em termos de otimização do tempo e de recursos. Sem ela, diferentes plataformas podem gerar dados desconexos e difíceis de consolidar, o que pode levar a erros e à sobrecarga de trabalho manual.
Publicidade

Cibersegurança como pilar da resiliência empresarial: a abordagem estratégica dos MSPs

Na última década, a segurança cibernética deixou de ser um tema restrito às áreas de TI para se tornar...

ADDEE traz HaloPSA ao Brasil, apostando na eficiência para MSPs

Plataforma de atendimento e automação promete otimizar a gestão de serviços com funcionalidades integradas para todo o ciclo de vida...

Must read

4 bons conceitos para apoiar a sua identidade de marca

No mercado, existem marcas que, ao falar seus nomes,...

Estratégia de comunicação B2B para redes sociais: dos posts para as vendas!

Adaptar seu conteúdo permite experimentar diferentes maneiras de mostrar sua empresa de TI, os benefícios dos seus serviços e não ser tão repetitivo com algumas táticas.
- Advertisement -

You might also likeRELATED
Recommended to you