I've researched this topic a little bit and available information indicates that MyISAM tables should not crash on their own from a simple server restart. Usually the following causes are put forth:

  • hardware bug
  • server terminated abruptly (e.g. SIGKILL)
  • system-level issues, such as OOM scenarios, out-of-disk space, or system panics

However, on my environment, a "normal" mysqld shutdown and restart operation has been seen to occasionally cause tables to crash. No other anomalous condition or system-level error was present. The tables are almost always the ones that are hit with the most amount of queries. The server is practically executing queries against these tables continuously, and not all of them are DML queries. The tables are frequently altered, optimized, and so on. However, in all cases, the server is shut down by issuing a SIGTERM, and waiting until it exits on its own, with an exit code of 0. It is never abruptly terminated.

The tables are subsequently successfully repaired with a "REPAIR TABLE" query, but this doesn't tell me why the problem happened to begin with.

Changing the architecture to avoid this problem is infeasible, so I need to know why it happens. Is MyISAM inherently subject to corruption upon server shutdown?

  • try to look in the error log of mysql , it tells you usaually what it is gine wrong. Myisam is also quite old, there are a few good causes to keep it, but nit very much – nbk Aug 22 '20 at 14:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy