Após a instalação inicial de um banco de dados MySQL, os gerentes de TI podem detectar que o desempenho de I / O de seus servidores começou a degradar.

Uma das razões mais comuns para isso é a fragmentação do disco rígido. Se sua instalação específica usar um alto número de chamadas aleatórias, isso geralmente levará à fragmentação em toda a memória instalada.

Ter um regime de desfragmentação é essencial para evitar esse problema de desempenho.

Uma das principais áreas para procurar fragmentação é nas tabelas SQL. Isso pode acontecer com a exclusão aleatória e inserções cada vez mais fragmentando uma tabela até que haja uma queda no desempenho no servidor host.

Além disso, se você estiver vendo aumentos no uso de espaço em disco que não podem ser explicados por outras ações realizadas, é provável que uma tabela fragmentada seja a culpada, pois elas tendem a ocupar mais espaço em disco disponível.

Primeiro passo

As tabelas mais comuns para experimentar a fragmentação serão o InnoDB e o MyISAM. Para os administradores de sistema encarregados de entender por que o desempenho de seu banco de dados foi corroído, focar primeiro no primeiro tipo de tabela sempre será um bom primeiro passo..

Isso ocorre porque, como a tabela InnoDB marca todos os dados gravados como excluídos, esse bloco permanece vazio e não é sobrescrito com novos dados. É claro que, com o tempo, isso inflaciona artificialmente a tabela com um problema correspondente com o desempenho.

Geralmente, a execução da rotina 'Otimizar Tabela' reconstruirá a tabela e seu índice. Note que a tabela será bloqueada enquanto este comando é executado.

Além disso, sysadmins devem estar cientes de que as tabelas secundárias ainda podem ter altos níveis de fragmentação mesmo depois que a rotina é concluída.

No entanto, muitos sysadmins estão sendo mais inteligentes com seus regimes de desfragmentação, pois percebem que algumas tabelas terão mais tráfego do que outras. Realizar uma desfragmentação difícil por meio da rotina Otimizar Tabela pode ser ineficiente.

Uma conseqüência de fazer isso regularmente é que cada instância gera um log de transação, que pode levar um tempo maior para backup. Além disso, verificar o nível real de fragmentação em cada índice antes de iniciar pode ser altamente revelador..

Definir um nível mínimo de fragmentação de índice antes da desfragmentação é garantido para garantir que você não esteja executando defrags desnecessários em seus servidores.

Baixo fator de preenchimento

Os administradores de sistema também devem pensar em como eles têm seu banco de dados configurado. Em alguns casos, isso incluirá um fator de preenchimento baixo, o que acelera as gravações no banco de dados, mas, inversamente, diminui as leituras.

Eles também podem ver vantagens de desempenho se puderem armazenar em cache seus bancos de dados.

Se isso não for possível, veja como o banco de dados é distribuído pelos discos rígidos instalados. Se você tiver armazenamento compartilhado em uma instalação Dell PowerEdge, por exemplo, pense em como simplificar isso para reduzir a quantidade de acessos aleatórios que seu banco de dados precisa executar em um determinado número de discos rígidos..

Além de se concentrar nas próprias tabelas do banco de dados, os gerentes de TI também devem pensar em sua manutenção dos discos rígidos físicos que seus servidores estão usando. Uma desfragmentação do sistema operacional em intervalos regulares deve oferecer uma melhor expectativa de vida para o hardware e também permitir que os aplicativos instalados vejam o aumento de desempenho..