Algumas atividades rotineiras permitem ao MySQL manter desempenho satisfatório, mesmo durante períodos de maior utilização simultânea do produto. São elas:
Reorganização e redução do tamanho de tabelas (OPTIMIZE)
Tabelas do MySQL ficam fragmentadas a cada atualização recebida, principalmente através de comandos SQL de alteração ou remoção de registros. Isso não é um problema até que a tabela fique muito fragmentada. Nossa recomendação é avaliar o resultado de uma reorganização de tabelas apenas quando o percentual de fragmentação for maior do que 35%.
Rotinas de desfragmentação dos índices
Existem diversas tarefas que devem ser feitas rotineiramente para minimizar lentidão no banco de dados. A fragmentação pode causar severos problemas de acesso aos dados ou buscas desnecessárias, carregando o servidor, consumindo espaço desnecessário e tornando a aplicação mais lenta.
Coleta de estatísticas de desempenho
O MySQL coleta e armazena dados de estatísticas sobre as colunas utilizadas em predicados de consulta e sobre os índices que são criados para as colunas da tabela. As estatísticas são informações utilizadas pelo otimizador interno de consultas para ajudar a escolher qual algoritmo será utilizado pelo MySQL e como estimar a quantidade de linhas que serão processadas por essas operações. Baseado nessa informação o software decide criar o melhor plano de acesso aos dados.
A atualização de estatísticas assegura que as consultas sejam compiladas com estatísticas atualizadas. Porém, a atualização de estatísticas faz com que as consultas sejam recompiladas. Recomendamos não atualizar estatísticas com muita frequência, porque existe uma compensação de desempenho entre a melhoria dos planos de consulta e o tempo necessário à compilação das consultas. As compensações específicas dependem do seu aplicativo.
Backup do MySQL
Dependendo da distribuição do MySQL existirá uma ferramenta distinta para backup. Abaixo listamos nossa recomendação geral para o backup desse produto, caso não haja uma política interna da empresa para planos de retenção e perdas possíveis de dados.
Tipo de Backup | Estratégia Geral Recomendada |
---|---|
Backup Lógico | Backup Full semanal, se a janela permitir. Normalmente o mysqldump/mysqlpump é lento e ineficiente para um restore full do banco de dados. |
Backup Físico | Backup Full diário. |
Backup de Logs | Backup de log de hora em hora. |