I have a MyISAM MySQL table that keeps crashing. The table has only 16 rows and is very rarely written to (maybe once a month). I have a medium-sized site that typically has about 500 pageviews per hour at peak times, and each pageview queries this table 1-2 times.
How can I figure out why this particular table keeps crashing, and how I can prevent it from crashing again in the future? After it crashes, most of the pages on my site break.
I have access to the mysql logs, but I'm not sure what exactly to look for.
EDIT: here are a couple snippets from the error log:
120317 12:35:18 [ERROR] /usr/libexec/mysqld: Incorrect key file for table './db/tablename.MYI'; try to repair it
and then later:
120318 4:29:00 [ERROR] /usr/libexec/mysqld: Table './db/tablename' is marked as crashed and should be repaired
Best Answer
What is the OS and MySQL version that you are using?
You need to investigate to see if anyone renames or moves files manually in the data directory, as it could be the cause of corruption.
You could run a script with CHECK TABLE command on a frequent basis that would check when the table gets corrupted and maybe give you additional clues as to what causes the corruption.
Check /var/log/messages to see if there are any system errors that could be responsible.
Some possible work arounds if you don't have time to investigate:
EDIT
Yes, with such an old version there are bound to be some bugs. At least upgrade to the latest 5.0.x version (5.0.95 is the latest at the moment). Better yet, upgrade to MySQL 5.5.x.