I am sure there are plenty of developers that will try to argue that MYSQL is a great database, and that it compares favorably to SQL-Server. But, when I constantly encounter (accidentally) errors like the following when just browsing web sites on the Internet, I really have to wonder how stable the product, and the data it is storing, is. I have run into this same "table is crashed" junk on multiple sites over the past few months; and, these are sites I go to regularly that are usually just fine. I had this happen on the Eclipse.org site recently too (and, that is a BIG NAME site to say the least).
mySQL WARNING!When I encounter errors like this, I can't help wondering how utterly screwed up the underlying data-integrity is throughout the entire affected database. And, I can't help wondering why it seems to take people ages to become aware of the issue (I have seen this type of error persist on large sites for up to a week - apparently undetected, though perhaps just not a priority for anyone to fix). Better yet; if the database "knows" a repair is needed, why can't it repair itself or something?
DB Error Blog Flux Topsites: mySQL Error on Query : SELECT * FROM `weblog` WHERE weblog_ID='95849'
- Mysql Error : Table './infor/weblog' is marked as crashed and should be repaired
- Mysql Error no # : 145
- Date : June 4, 2008, 8:30 am
- Script: /sitedetails_95849.html
I have never encountered a "crashed table" in Microsoft SQL Server 2000, 2005 or 2008, and I have relied on SQL Server for serious mission-critical applications with hundreds of tables and tens of gigabytes of data with many users simultaneously hitting the database. All this with no issues aside from an occasional log-file that needs shrinking. The only serious SQL-Server crashes I have encountered have been due to hardware failure like a RAID-Backplane cooking out and taking the data and/or log drives with it. But, even that is usually easy for me to correct by simply restoring a backup or a hot-spare (kept available via log-shipping or such).
The bottom line for me ever considering MYSQL for production is simple: until I stop seeing all these "table is marked as crashed and should be repaired" messages at random on the Internet, there is no way in heck I'd stake my own software developer and database administrator reputation on the line for such a product. When it comes to something as important as your database, and the critical data it contains, there is no compromising data-integrity and stability for "cheap" or "free" products like MySQL (and yes, I realize there is commercial version of mysql also -- which actually amplifies my concern).
Here's hoping the product becomes more stable over time, though it seems like it has been around long enough to work out most of these issues already, so I am not very encouraged about this prospect.