Tabulky MyISAM se velmi snadno zhroutí. V každé tabulce jsou informace o záhlaví, které sledují, kolik otevřených souborů zpracovává tabulka MyISAM.
Pokud dojde k selhání mysqld, žádná tabulka MyISAM, která měla otevřené popisovače souborů, nikdy neměla příležitost snížit počet popisovačů souboru při každém zavření popisovače souboru. Pokud tedy nový popisovač souboru otevře tabulku MyISAM (soubor .MYD) a mysqld zjistí nesoulad mezi počtem popisovačů souborů, o kterých se tabulka MyISAM domnívá, že je otevřená, a počtem popisovačů souborů, které má tabulka MyISAM skutečně otevřené, tabulka je prohlášen za havarovaný.
Existují čtyři (4) způsoby, jak to zvládnout:
METODA #1:Nastavení automatické opravy MyISAM
Viz můj příspěvek https://dba.stackexchange.com/a/15079/877 jak to nastavit po restartu MySQL (15. března 2012)
METODA #2:Použijte InnoDB místo MyISAM
InnoDB má obnovu po havárii zabudovanou do inicializace Storage Engine. MyISAM ne
METODA #3:Místo MyISAM použijte Aria
Aria je doplňkem MariaDB za MyISAM. Obsahuje mechanismy zotavení z havárie pro jednotlivé tabulky.
METODA #4:Nezabíjejte -9 na mysqld
Pokud mysqld selže, úmyslně nebo nedobrovolně, informace v hlavičce pro všechny otevřené tabulky MyISAM je dostanou do havarovaného stavu. Vyhněte se nutnosti ručně zabíjet mysqld.