Tenho um banco de dados que existe há cerca de 10 anos, com centenas de tabelas, muitas das quais possuem vários milhões de linhas.
Não temos DBA e temos um número cada vez maior de consultas lentas. Estamos trabalhando para resolver essas dúvidas lentas, mas estou curioso sobre o ajuste do banco de dados em geral.
Você acha ANALYZE TABLE
que nos traria algum ganho de desempenho? Isso é algo que os DBAs executam regularmente?
É raro que ANALYZE TABLE faça qualquer melhoria significativa na otimização de consultas.
Você pode executar este comando livremente. É de baixo impacto. Tudo o que ele faz é ler algumas páginas de tablespaces do InnoDB para amostrar os dados e usa isso para atualizar estatísticas sobre tamanho de linha, distribuição de índice, etc. o tamanho total da mesa.
A mesma operação acontece automaticamente de tempos em tempos conforme você atualiza as linhas da tabela. Isso também acontece automaticamente sempre que a instância é reiniciada ou se você reconstruir índices (muitos tipos de operações ALTER TABLE fazem isso) ou se você executar OPTIMIZE TABLE.
Leia https://dev.mysql.com/doc/refman/8.0/en/innodb-performance-optimizer-statistics.html para obter mais detalhes se quiser saber.
Raramente, as estatísticas do índice ficam desatualizadas depois que você altera muitas linhas de dados. Nesse caso, você pode melhorar a precisão da otimização da consulta executando ANALYZE TABLE. Mas apenas se as alterações nos dados também alterarem significativamente a distribuição dos dados.
Usar ANALYZE TABLE é uma espécie de manobra de "grave maria". Ocasionalmente, faz diferença e é fácil de fazer, então você também pode tentar. Mas não tenha muitas esperanças.
O que tem muito mais probabilidade de ajudar em suas dúvidas é otimizá-las. Isso leva algum tempo e leva algum tempo para entender como os índices ajudam nas consultas. Freqüentemente, um índice bem escolhido pode ajudar a melhorar várias consultas, por isso é uma boa relação custo-benefício.
Lamento saber que você não tem um bom DBA. Você pode considerar contratar um ou pelo menos entrar em contato com um consultor para uma revisão única de suas principais dúvidas lentas.