As a developer who codes database-driven apps for a wide variety of clients, my first priority is to find the right database for the job, whether it's SQL Server, Oracle, DB2, MySQL, or even Access. As someone who's partial to open source (and free software), I've fallen in love with MySQL's virtues and use it where it makes sense.
But with the release of SQL Server Express, that seems to be less and less nowadays. MySQL will always have a place in my toolbox. But when considering the scenarios and applications it previously played a role in, SQL Server deserves a second look. To that end, I've gathered a few of the false assumptions developers sometimes make when choosing between MySQL and SQL Server. I'll also describe practical business cases where SQL Server makes more sense, some of the market considerations an ISV should make, and some war stories from one company in particular who made the switch from MySQL with great success.
Myths About MySQL and SQL Server
When first scoping a database project, I've usually reserved SQL Server for the "big" jobs, i.e. multiple servers, large budget, interoperability with other Windows apps. When a client needs something fast and cheap, that's when I would traditionally talk about MySQL. But all of this warrants a second look. In fact, making assumptions like this can lock you into a non-scalable solution for when your client, flush with success, suddenly finds deep pockets.
MySQL = small and fast; SQL Server = big and slow
Many Web shops like to use MySQL for simple forward-only (static cursor), read-only data storage. But when it comes to read/write and dynamic cursors, especially when transactions are involved, many companies have shown marked improvement by moving to SQL Server. For example, Reed.co.uk states that "MySQL used 11.7 per cent more CPU time than SQL Server 2005 and was 7.5 per cent slower when responding to queries." Likewise, IBS Synergy Sdn Bhd (IBSS), a Malaysian ISV, says "To support a five gigabyte database, SQL Server 2000 is about 10 times faster than MySQL. The performance is even more impressive when it comes to restoring the data—SQL Server 2000 is between 20 to 30 times faster."
As far as size goes, MySQL comes in at 37MB while the SQL Server Express download weighs 50MB—larger, yes, but not significantly so. Use SQL Server Compact Edition (CE), though, and the download drops to 2MB.
MySQL = free; SQL Server = $$$
I recently read a side-by-side comparison of MySQL and SQL Server that mentioned Microsoft having a "development" version of its database available, as long as you don't use it for commercial purposes. It's time to put that myth to rest.
First of all, Microsoft offers two versions of SQL Server at no cost: SQL Server CE, which is used primarily for mobile devices but can be used in desktop and Web apps, as well, and SQL Server Express, a full featured, but lightweight and redistributable version of Microsoft's SQL Server. You also have a $49 (estimated retail price) version called SQL Server Developer Edition for developing and testing demos and prototypes.
Second, like SQL Server, MySQL has multiple licensing options. If you think MySQL is run by a community-driven non-profit, guess again. It's actually managed and distributed by a for-profit Swedish software company who has effectively monetized their open source platform. If you look through their products, you'll see that the MySQL Enterprise Editions are priced per server, with varying levels of tech support. Sound familiar?