For those of us that depend on MySQL everyday, the buyout of Sun (which had bought MySQL) by Oracle did not bode well. A decidedly biased survey by the folks behind PostgreSQL suggests that many people worry about the health of MySQL in Oracle’s hands. I’ve mentioned this before, and I do think the conventional wisdom is that open source software (which includes OpenOffice.org, MySQL and Java) will not flourish at Oracle. It makes sense – Oracle has never had a culture of fostering open source software, and it seems unlikely to obtain one.
So what does someone do who builds their houses right on top of the LAMP stack (M standing for MySQL)?
For most folks, especially if they build on shared hosting infrastructures, this just isn’t an issue. They depend upon their hosting providers, for whom it may or may not be an issue – but they won’t have to think about it. For those folks in a position to choose which database software to use, (for example, you use VPS systems like Amazon, Slicehost, Linode, etc.,) then I think there are two pretty good options:
Go with MariaDB, which is basically a drop-in replacement for MySQL (and conveniently starts with an “M”.)
Switch to PostgreSQL.
MariaDB is a branch of MySQL that came about because of the uncertainty relating to Oracle’s ownership of MySQL. From the website:
In most respects MariaDB will work exactly as MySQL: all commands, interfaces, libraries and APIs that exist in MySQL also exist in MariaDB. There is no need to convert databases to switch to MariaDB. MariaDB is a true drop in replacement of MySQL! Additionally, MariaDB has a lot of nice new featuresthat you can take advantage of.
The problem is that the major Linux distributions (Ubuntu, Debian, RedHat) don’t yet have MariaDB in their repositories, so it will be a while before MariaDB is an easy apt-get or yum away from installation (there are some independent repositories and builds.)
PostgreSQL is a different beast entirely. It’s been an also-ran in the open source database race, and I was, for many years, quite faithful to it. It’s a very solid database, and it was ACID compliant before MySQL was. It’s major weakness (and why the LAMP stack is called that and not the LAPP stack) was that it was a fair bit slower than MySQL. But that weakness has long been taken care of, but the damage was already done.
Many open source web database systems can use PostgreSQL instead of MySQL at this point. But PostgreSQL doesn’t have the same large user base, and doesn’t have many of the same web-based and desktop tools that MySQL does. There are differences in the SQL commands and such, and the command-line interface looks different. There is also a big difference in how Auto-numbered fields get handled, but that’s not really an issue that folks who don’t dive into deep database and code need to deal with.
So which to go with? It probably makes sense to wait a bit, first for MariaDB to make it into mainstream repositories, etc., and also to see what the fate of MySQL is. And checking out PostgreSQL is always a good option, it’s a very good database system, and the likely flight from MySQL might do the project some good.