On the Lambda

Programming, Technology, and Systems Administration

On the Lambda

What’s up with MySql

May 4th, 2022 · No Comments · development, servers, sql

Historically, when one considers database server platforms there are four major players: Oracle, MySql, Sql Server, and Postgresql. (One could argue for Sqlite and even Access, but those are in-process engines and really belong in a different category.) Unfortunately, I question whether MySql still belongs with this group. It’s come to the point where I actively advocate avoiding MySql for new development. While I understand moving an existing, functioning app may be more trouble than it’s worth, if you’re starting from scratch I just can’t in good faith recommend MySql anymore.

To understand why, I need to deliver a short history lesson. Let’s go back to 2004. At this time the database market wasn’t exactly young any more, but products were still raw compared to what we have today. Enter MySql. It was a very capable database for the era, and could keep up and even beat the “enterprise” competitors charging into 5 and 6 figures for similar deployments, while at the same time being the only real FOSS option (Postgresql existed, but wasn’t really mature yet). For this reason MySql was widely adopted, especially among low-cost web hosts.

Unfortunately, MySql came to be owned by Sun, and Sun had fallen on hard times. They also had Java, but neither Java nor MySql brought in much revenue. Sun’s cash product selling Sparc workstations was fading, and fast, and so Sun couldn’t afford to support MySql development beyond basic bug fixes. Thus MySql began to stagnate.

Enter Oracle, who decides to buy out Sun. Unfortunately, Oracle wants Sun mainly for Java, so this doesn’t improve things much for MySql. Worse, they view MySql as competitor for their existing database product. The result is while they don’t actually kill off MySql, they also don’t do any more for the product than Sun. I do want to make clear I don’t blame Oracle for causing the stagnation; only for failing to end it.

But stagnate it did… for more than 10 years, until around 2017 when development of what became MySql 8.0 finally starts to accelerate. Even then, it wouldn’t release until late 2018.

In the meantime, competing products did not sit still. Features like lateral joins, common table expressions, windowing functions, that have only recently come to MySql, were built first (and often better, at least so far) in other products. And let’s not even talk about engine improvements for performance and stability, or MySql’s long-standing scary quirks.

There was some attempt to avoid all this via the MariaDB fork, but unfortunately it was never really able to achieve enough momentum to make up for the lost time; a case of too little, too late.

The point is MySql 5.7 is still rooted to the 2004 state of the platform, even though it was released in 2015. In my opinion it doesn’t really even qualify as a modern database platform.

But that’s 5.7 and earlier. Now we can push things forward to the 2018 state of the art by getting to MySql 8.0; this is at least reasonable (to contrast running 5.7 or earlier, which is not reasonable). Just know you’d still be playing catch up from about four years behind the rest of the market. Worse, the fundamental issues that caused the original stagnation are not resolved.

Today, while I understand and respect the momentum of an existing product already using MySql, it wouldn’t even be on my list to consider for new development. If FOSS were a priority, Postgresql beats MySql in pretty much every possible category; otherwise Sql Server has a lot going for it as well.


No Comments so far ↓

There are no comments yet...Kick things off by filling out the form below.

Leave a Comment