If MySQL falters, what do you replace it with?
The MySQL relational database serves as a back end for millions of websites, and powers millions of non-Internet data-handling applications. In 2009 ownership of MySQL passed to Oracle when it bought Sun, which had acquired MySQL the previous year. Since then developers and IT managers have worried that Oracle would someday cease support for MySQL because it competes with the company's profitable proprietary database products. This fear may be justified. In August, Alex Williams wrote at TechCrunch, "Oracle is holding back test cases in the latest release of MySQL. It’s a move that has all the markings of the company’s continued efforts to further close up the open source software and alienate the MySQL developer community." We tried to get Oracle to rebut that accusation, but multiple emails and phone calls did not get a response. Does this mean it's time to move from MySQL to another open source database – and if so, which one?
We asked a number of database experts what they think MySQL users should do. John Locke of development shop Freelock Computing is one of many experts we spoke with who suggests MariaDB. He says it's developer, Monty Widenius (who was CTO of MySQL AB before Sun bought the company), "has a great team put together. MariaDB is a great drop-in replacement for MySQL, with some nice performance boosts and an actual forward direction. If I were an enterprise customer of MySQL, I'd drop in MariaDB and sign up for support from Monty Program or whoever they recommend. You're going to get much better tech support and access to developers who built the system over the past couple decades, who understand why it works the way it does, and probably at a better rate than Oracle will charge you."
However, Locke says, "if you're not already built on MySQL, I'd take a hard look at Postgres, MongoDB, and the other options out there. One size does not fit all, and your needs may well be better suited to something entirely different."
Jesse Davis, director of R&D at data connectivity provider Progress DataDirect, has a similar take. "MySQL is one of the most prolific choices for SMB websites, but if I had to choose a FOSS alternative it would be PostgreSQL. It's a full-featured RDBMS that is easy to set up and has many functional similarities to mainline commercial databases. It has great analytics capabilities, so you can run your website and plug it into your favorite business analytics package."
Kaj Arnö is vice president of collaboration at SkySQL, which provides MySQL services and support. Arnö, a member of the original MySQL team, has a historical perspective on the question. "During MySQL AB times, the company was often approached with a question like, 'Sure, MySQL is good, but what if something happens to the small company behind it?' Our answer used to be that while MySQL AB had every intention to continue its existence, the GPL would protect the user base from any risks – implying that the community could at any point fork the GPL product should MySQL AB go bankrupt or otherwise be a bad steward of the product. While the imminent risk for MySQL users at that point wasn't Oracle taking over the product, the same safety net does protect MySQL users today. Anyone concerned with the implications of Oracle's stewardship of MySQL is also protected by the existence of MariaDB, which is a viable, plugin-compatible alternative to MySQL. It also has several added features that make it a better choice for many installations for technical reasons, even beyond the vendor political ones."
Dave Redfern, a senior software developer at online marketplace Voices.com, says "MariaDB is designed to be a drop-in replacement for MySQL. It aims to be binary-compatible with the same MySQL release – in other words, 5.5 Maria offers the same features as MySQL 5.5. It uses the same client connection libraries and generally looks and behaves just like MySQL. Another possible alternative, Drizzle, on the other hand, has been retuned and dropped a number of features to provide better scaling and performance under higher loads. It can still use the same client connections, but this may change over time. Basically, if you have an existing application, it is better to use MariaDB or stick with MySQL for now and see what Oracle does next. If you're starting from scratch, Drizzle may be an option, or perhaps look to Postgres."
While most of the database experts we spoke with advised MySQL users who feel compelled to change platforms to move to another open source database, John Murdoch, president of software development contractor Wind Gap Data, LLC, has a different suggestion. "The database is typically the core of the application, and represents the largest piece of code that a developer brings into the project from elsewhere. Having a politically correct database may be a nicety, but you need a database to be fast, efficient, and above all extremely reliable. Microsoft SQL Server Express 2008 R2 is all of that, and supports up to a 10GB data file. For a small business website, that'd be my choice every time."
Aside from that one recommendation for SQL Server, the consensus among the more than 30 database experts we turned to for guidance seems to be that if you are using MySQL and you are happy with it, MariaSQL is the way to go. It's a direct MySQL fork that requires hardly any changes to your other software. As a drop-in replacement, MariaDB is the easiest way to migrate away from MySQL, and since it's Monty Widenius's baby, and Monty was a cofounder of MySQL who only quit working on it when Oracle got control of the MySQL trademarks and coprights, you can expect MariaDB support through Monty's company, Monty Program, to be top-notch.
Direct MySQL clones have an advantage because almost every programmer and web designer is familiar with MySQL. If you are picking a database for a new project, a majority of our experts suggest PostgreSQL, which is similar enough to MySQL that it doesn't take a person with MySQL experience long to learn. The others? It depends on many factors, including your skill level and your exact database needs. The experts we spoke with often cited NoSQL databases, which are faster and easier to work with than relational SQL databases when you need to store and retrieve huge quantities of data quickly, but don't need to manipulate it or define its relationship to other database entries.
Each of the databases mentioned in this article has its good and bad points, and each organization's database needs are different, so it is impossible to make a "one size fits all" recommendation. The main point here is not to recommend one database over another, but to point out that plenty of reliable, well-supported databases can be viable alternatives to Oracle's MySQL.
This work is licensed under a Creative Commons Attribution 3.0 Unported License