I have a series ofMyISAM database tables and was reading a few points about how it's not as good as InnoDB with respect to integrity. Specifically though, the post went on and seemed to suggest there is a possibility you could lose data. I can't find the link of course (typical luck eh?) but I do remember the takeaway suggesting the above.
Is it possible that you could lose actual rows during inserts? My assumption is this is not true, but would be interested in what the community has to say.
Thanks!
MyISAM has zero support for transactions and because of that, it cannot ensure transactional integrity. It has no journal it can use to recover from a crash. It is, in short, brittle and prone to spectacular failure, especially if your system is abruptly terminated in the middle of a big write.
There is a very high possibility you could lose data during a write. InnoDB is different in that the write itself is not actually committed until it is complete, there's a mechanism for preserving database integrity during a modification so that if there's a failure there it can "roll back" to the previous state. MyISAM has no such mechanism and is at the mercy of the filesystem to save it from total corruption.
I'd strongly recommend not using MyISAM for anything critical, or anything at all if you can avoid it. It was useful in the 1990s when memory was at a premium and CPU power was scarce, a typical high-end MySQL server might have had 512MB of memory, two 200MHz processors, and a pair of 9GB disks in RAID1 configuration. Every little bit of performance counted. InnoDB has gotten a lot faster, and the performance penalty for journaling has shrunk dramatically, especially on SSD.
You wouldn't use a filesystem without a journal, so you really shouldn't use a database without one either.