1
resposta

recriar indices

Boa tarde galera! Trabalho com banco de dados (ok, é uma versão antiga mysql 4.0, mas enfim), e em alguns momentos do dia me deparo com lentidões/travamentos ao gerar relatórios ou até mesmo processos rotineiro de um sistema. A grande dúvida é: por quê em alguns cenários recriar (dropar e criar novamente) índice, o mysql respeita? Sendo que o índice já estava lá. Desde já muito obrigado!

1 resposta

Olá, Matheus, tudo bem?

Desde já peço desculpas pela demora em obter retorno.

Matheus, ao criar um índice no MySQL, ele é registrado no catálogo do banco de dados, que contém informações sobre a estrutura dos índices e suas associações com as tabelas. O otimizador de consultas do MySQL utiliza essas informações para determinar a melhor estratégia de acesso aos dados ao executar uma consulta.

Ao recriar um índice, você está efetivamente removendo o índice antigo e criando um novo. O MySQL atualiza o catálogo do banco de dados com a nova estrutura do índice, substituindo as informações antigas pelo novo índice criado.

Dessa forma, o MySQL "respeita" a recriação do índice porque ele interpreta que a nova estrutura do índice é uma informação mais atualizada e relevante.

A recriação pode causar uma breve interrupção nas consultas, portanto, é importante avaliar cuidadosamente os impactos e realizar testes antes de executar a recriação em um ambiente de produção.

Espero ter ajudado.

Caso surja alguma dúvida, fico à disposição.

Abraços e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!