Mesmo que o formato da tabela MyISAM seja muito confiável (todas as alterações feitas na tabela por uma instrução SQL são escritas antes do retorno da instrução), você ainda pode obter uma tabela corrompida se ocorrer algum dos seguintes eventos:
· O processo mysqld é eliminado em no meio de uma escrita.
· Ocorre um desligamento inesperado do computador (por exemplo, o computador é desligado).
· Falha de hardware.
· Você pode usar programas externos (como myisamchk) em tabelas que estão sendo modificadas pelo servidor ao mesmo tempo.
· Defeitos de software no código MySQL ou MyISAM.
Os sintomas típicos de uma tabela corrompida são:
· Ao selecionar dados da tabela, você obtém o seguinte erro:
· Arquivo de chave incorreto para a tabela: '...' Tente repará-lo.
· A consulta não consegue encontrar a linha na tabela Ou. retornar dados incompletos.
Você pode usar a instrução CHECK TABLE para verificar a integridade de uma tabela MyISAM e usar REPAIR TABLE para reparar uma tabela MyISAM danificada. Quando o mysqld não está rodando, você também pode usar o comando myisamchk para verificar ou reparar uma tabela.
Se sua tabela for corrompida com frequência, você deve tentar determinar o motivo pelo qual isso está acontecendo. A coisa mais importante a entender é se a tabela foi corrompida como resultado da falha do servidor. Você pode verificar isso antecipadamente procurando no log de erros a mensagem do mysqld reiniciada mais recentemente. Se tal mensagem existir, é muito provável que a corrupção da tabela seja resultado da morte do servidor. Caso contrário, poderão ocorrer danos durante a operação normal. Isso é uma falha. Você deve tentar criar um caso de teste reproduzível que demonstre esse problema.