Hating MySQL for the Wrong Reasons

Posted in: MySQL, Technical Track

In Spotting the Wolf in Sheep’s Clothing, Frank Mash writes about a specific person who is spreading fear, uncertainty and doubt about MySQL.

Now, this always gets me, especially with MySQL. For how long will MySQL be the bastard stepchild of the database world? Because really, it’s been a full-fledged DBMS for at least 5 years. 10 years ago there were no transactions, but….that was 10 years ago! 10 years ago everyone made $100,000 per year, took 3 hour lunch breaks, played foosball in the office, coveting their IT stock and sat in massage chairs with Apple Cinema displays.

How much have *you* changed in 10 years? Your digital world? 10 years ago we paid for text messages by the character, which is why we came up with rlly abbr wrds like kthxbye! and OMG, LOL, ROFL and my favorite, ROFLPMP — because it makes me giggle whenever I meet a professional Project Manager who has PMP as a suffix.

Whoops, mini-rant aside….don’t hate MySQL for the wrong reasons. There are plenty of reasons to hate MySQL. For one, the hack called replication, particularly the binlog-do-db hack — replicating commands not on the basis the database you’re affecting, but on the basis of the database you’re in at the time. For another, the fact that the query match has to match text exactly, sensitive to whitespace and case changes.

But hating MySQL because “it sucks” or because “it doesn’t have blah feature” — which, 9 times out of 10, it has — is just wrong. The worst part is that many of these folks that spread this FUD are smart people. They just don’t know a lot about the subject at hand, and what they do know is old, second-hand or both. And honestly they don’t have a lot to gain by saying what they do. So why bother?

I’m young, but I’ve been around enough to know there is no one perfect solution. Every DBMS, whether it’s Oracle, MySQL, Ingres, Postgres, FileMaker, Microsoft SQL Server, Microsoft Access or SQLite (and you could argue whether or not those last 2 are even DBMS) have reasons to hate them. There are plenty of reasons to hate any piece of software. Each DBMS is the right tool for a set of jobs, and the wrong tool for another set of jobs.

That being said, in order to combat this, I have done something I don’t often do — submitted the same workshop proposal to a few conferences. I enjoy speaking at conferences because I enjoy researching topics too, so giving the same presentation over and over doesn’t appeal to me — I also get annoyed at seeing some of the same presentations offered over and over, but I do know deep in my heart that there are a lot of people that still need to learn that stuff.

So if you know people who need some corrective knowledge on their FUD of MySQL, hopefully at one or more of OSCON, Usenix and LISA, you can attend my talk entitled:

How to Stop Hating MySQL: Fixes for Common Mistakes and Myths”. I’ll let you know if the talks are accepted.

Interested in working with Sheeri? Schedule a tech call.

4 Comments. Leave new

Nice post Sheeri. When you mentioned the perks of 10 years ago I was thinking about where I was then. I unfortunately didn’t get any of those perks. Sigh.

Oh well, there is always the future right?

Adam Machanic
March 21, 2008 8:13 am

Nice post. I am definitely one of those guilty of hating MySQL without really knowing much about it. Looking forward to learning enough to hate it for better reasons


I suppose my ‘hate’ of MySQL is that database developers who have learnt on it use Oracle in the same way as they’d use MySQL. From what I’ve read [http://forge.mysql.com/wiki/MySQL_Internals_Prepared_Stored] MySQL doesn’t reuse execution plans for SQLs. As such, I suspect MySQL shows less performance benefit in using prepared queries (and some penalties as I understand the query results are never cached).
So MySQL developers can pick up habits that can be destructive in an Oracle environment. Of course there are those in the Oracle community who will state “this is how database applications should be developed” without knowing whether their advice is wholly or partly inappropriate for some other database platforms.
Maybe we just need to turn against the common enemy….developers who think database agnostic code is the only way forward.


Very Useful post.


Leave a Reply

Your email address will not be published. Required fields are marked *