At Data Applied, we support both MySQL and SQL Server. Because we must guarantee that our code works (and performs!) well using both platforms, we’ve had quite a few opportunities to compare the two (i.e. making our code work with both has been a *huge* pain).
Here is why I like SQL Server, but prefer MySQL. Having spent 10 years at Microsoft, my intent is not to disparage SQL Server. Some of SQL Server’s advanced enterprise features just can’t be beat. However I find that working with MySQL is often much easier. Here is why.
1. Make paging easier to use:
Most high-performance applications working with large data sets must rely on paging to incrementally process and return results. For example, to get the next 1000 rows starting at position 5000 (given a stable order), MySQL lets you use the following syntax:
SELECT * FROM T WHERE ... ORDER BY ... LIMIT 1000 OFFSET 5000
With SQL Server, doing the same thing is a lot more cumbersome. It’s pretty obvious which syntax is easier to use. Sadly, developers who may want to implement paging may be discouraged by this intimidating syntax:
SELECT *, ROW_NUMBER() OVER (ORDER BY ...) AS RowNumber FROM T WHERE ... AND RowNumber >= 5000 AND RowNumber < 6000 ORDER BY ...
2. Avoid ridiculous overflows:
SQL Server suffers from ridiculous numeric overflows. For example, when Read more…