by Jeremy H
• April 8, 2020
We’re looking at MySQL vs MS SQL Server – Which Reigns Supreme?Relational database management systems (RDBMS) form the backbone of enterprise IT. Data-driven business intelligence, analytics, and reporting workloads simply couldn’t exist without the support of a high-powered, high-performance relational database. Good databases can bring your enterprise IT to the next level—while bad databases can bring it to its knees.
The crucial question is then: which RDBMS is right for your business needs and objectives? When comparing relational database solutions, two names seem to come up more than any others: MySQL and Microsoft SQL Server.
In this post:
MySQL is an open-source RDBMS solution that was purchased by Oracle in 2008. As a component of the popular LAMP web application development stack, MySQL powers some of the world’s most highly visited websites, including Facebook, Twitter, and YouTube.
Microsoft SQL Server (MSSQL) is an RDBMS solution developed and maintained by Microsoft. First released in 1989, SQL Server is now available in many different versions with different feature sets, including Enterprise, Standard, and Express versions.
The question of MySQL vs. MS SQL Server is a tough one, and there’s no right answer for every organization. Below, we’ll go over the most important factors to consider when choosing between SQL Server and MySQL.
The main differences between MySQL and Microsoft SQL Server are:
When selecting an enterprise-grade database, most companies have already invested a great deal of time, money, and expertise in their IT infrastructure—including their choice of operating system. This means that whether you go with MySQL or SQL Server, your choice of database solution needs to mesh well with your existing workflow.
Fortunately, both MySQL and SQL Server run on virtually all major operating systems. MySQL is traditionally associated with Linux as part of the famed LAMP stack (Linux, Apache, MySQL, PHP). However, it also offers full-fledged support for Windows and Mac OS X, as well as other Unix-based operating systems.
SQL Server, meanwhile, is developed by Microsoft and was originally written for Windows. In recent years, however, Microsoft has made strides in embracing the open-source community, which includes providing support for both Linux and Mac OS X. The most recent versions of SQL Server run on Linux natively, and will run on Mac OS X within a Docker container.
The bottom line: The right call here depends on what operating system your company is already using. Both platforms support Windows and Linux, although there are certain “home court advantages” to each one.
Using SQL Server makes a little more sense if you’re already a Windows and .NET shop. On the other hand, if you use Linux and Python/Java/PHP, MySQL is probably the better choice here.
Did you know you can generate a full-featured, documented, and secure MySQL and MS SQL Server REST API in minutes using DreamFactory? Sign up for our free 14 day hosted trial to learn how! Our guided tour will show you how to create an API using an example MySQL database provided to you as part of the trial!
Create a Database API Now
Cost is always a factor when making software purchasing decisions. An enterprise-grade database might be (and often should be) one of your biggest IT expenses. The good news is that both MySQL and SQL Server offer a free tier for users with less demanding IT requirements.
MySQL Community Edition is the free, open-source version of MySQL, which means that it’s a great start to get your feet wet and start learning the platform. It’s more than capable of running smaller production loads, but you’ll have to pay more for additional support.
SQL Server’s free offering comes in two different flavors:
It’s always tempting to save money by trying to make your IT needs fit the limitations of the free tier. Yet if your database is mission-critical, this may actually be costing you money in the long run. For large-scale deployments, paying for advanced features such as monitoring, backup, and fast support is almost certainly worth the cost.
Already bypassed the limitations of the free tier? The cost of MySQL and SQL Server depends on how powerful of a database you need, and what sort of support you’re looking for.
For a more complete MySQL feature set (as well as support from Oracle), you’ll need to shell out some bucks. The various MySQL editions will run you anywhere from $2,000 to $10,000 per server annually.
MySQL comes in three different tiers: Standard Edition, Enterprise Edition, and Cluster CGE. Choosing between them largely depends on the complexity and scale of your data needs.
All three MySQL tiers include 24×7 Oracle Premier Support, as well as essential features such as MySQL Database Server, MySQL Connectors, and MySQL Replication. However, only Enterprise Edition and Cluster CGE include advanced features such as monitoring, backup, security, and high availability.
According to Microsoft’s pricing page for SQL Server 2019, you can pay anywhere from $899 (standard edition, server licensing) to $13,748 (enterprise edition, two cores). There’s a wide discrepancy in pricing here, and your business needs will dictate how much power you need.
The bottom line: Once again, the winner here depends on your business requirements. Both solutions offer a free tier, and both have pricing schemes with multiple tiers. Without more specific information, the best thing to do is to speak with the sales department of each solution to get a final quote based on your specific needs.
Cloud computing has revolutionized the face of enterprise IT. According to RightScale’s 2019 “State of the Cloud” report, 94 percent of companies now use the cloud in some form or fashion.
As it stands today, the “big 3” cloud providers are Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform. Each provider offers a robust suite of services, including storage and computing—and, of course, SQL databases.
The cloud revolution is so impactful that it’s also affected the first two factors in this article: operating system and cost. Many cloud providers have fully managed database services, in which the provider handles the operating system and server complications for you. Customers can subscribe to a “pay as you go” model, giving them more flexibility and control over plan costs. This shift to cloud computing has somewhat diminished the importance of factors such as operating system and cost, while emphasizing other considerations such as performance and toolset.
Here’s how both offerings stack up in terms of the cloud.
All three of the biggest cloud providers support MySQL:
What’s more, all three services claim a rich feature set, including high availability, easy scalability, robust security, and pay-as-you-go pricing.
Like the cost of the database itself, the price of MySQL cloud solutions also depends on your circumstances—there’s no “one size fits all” answer here. The best approach might be to test out a MySQL environment in each of the three clouds and run some tests that are typical of your business operations. This should give you a rough estimate of how the different costs will shake out.
It’s worth mentioning that Oracle (the owner of MySQL) also features a cloud offering for MySQL, Oracle MySQL Cloud Service. This might be worth exploring due to Oracle’s “native” support of MySQL.
However, a SQL database is only one piece of your IT architecture landscape—you still need storage, computing, and security services. Oracle’s not currently a market leader in these domains, which means that the Oracle cloud may be a riskier choice for hosting MySQL.
It’s also worth noting that the “big 3” cloud providers all offer virtual machine services for running your own MySQL instances. This option gives you more control over your database, but requires more expertise (and is also more expensive).
Like MySQL, each of the “big 3” cloud providers has a Microsoft SQL Server offering:
There’s an interesting twist here: Microsoft, one of the major cloud providers, is also the creator of SQL Server. While AWS and Google both offer strong alternatives, there’s a sense that Microsoft has a “home-court advantage” in this respect.
As with MySQL, you can also pay to host Windows virtual machines in the cloud and self-host SQL Server this way. Of course, this also comes with the same expertise requirements and cost concerns.
The bottom line: Although either solution works as a cloud offering, SQL Server is the winner here: the one-two punch of SQL Server and Microsoft Azure is hard to beat. If you’ve already invested in MySQL, or you’re already using another cloud provider, then it’s probably best to stick with what you know. In a greenfield project, however, the SQL Server/Microsoft Azure choice should be highly compelling.
Database performance is crucial for any software application. If your database doesn’t respond quickly and efficiently, the entire system is slowed down, causing unacceptable delays to the end user. Poor database performance directly harms key business metrics such as user experience and revenue.
However, database performance is also heavily dependent on an immense number of variables. Slight differences in workloads can dramatically skew results, while minor tweaks can see major improvements. In other words, a well-designed database is worth its weight in gold.
MySQL and SQL Server both tout extensive performance and scaling capabilities. When it comes down to cold, hard facts, however, SQL Server seems to have the advantage. According to one study, SQL Server consistently beat MySQL in comparison testing involving high volumes of SELECT, INSERT, UPDATE, and DELETE queries.
Also note that MySQL is considered to be Oracle’s “entry-level” database. For top-shelf performance needs, Oracle will likely steer you toward their flagship database offering, Oracle Database. On the other hand, SQL Server is Microsoft’s flagship database offering.
The bottom line: It’s not a slam dunk, but SQL Server’s better numbers and flagship status give it the edge here.
No database is an island—whether you choose MySQL or SQL Server, you’ll need a good toolset to work with it. Both solutions offer front-end clients specifically for this purpose.
MySQL’s client application is MySQL Workbench, which runs on Windows, Linux, and Mac OS X. MySQL Workbench offers several important database management tools, including:
SQL Server’s client application is SQL Server Management Studio (SSMS). Note that SSMS is only available on Windows, unlike SQL Server itself. However, Microsoft provides an extension for the Visual Studio Code editor to execute SQL from a Linux machine.
SSMS has a more robust feature set than MySQL Workbench, including:
The bottom line: Both toolsets offer the basics: the ability to execute SQL, as well as view and manage databases. However, SSMS for SQL Server comes out on top here, with features that please novice users and seasoned DBAs alike. The execution plan visualizer, in particular, can pay for itself many times over.
As relational databases, both MySQL and Microsoft SQL Server use SQL to interact with their schema and data. The SQL dialect is slightly different between these two solutions, but not enough to influence your decision one way or another. In particular, SQL Server uses the proprietary T-SQL extension to SQL, which enables concepts such as procedural programming, local variables, and string and data processing functions.
However, MySQL and SQL Server differ when it comes to the runtime languages that interface with the database. Both solutions support connections with the major programming languages: C#, Java, PHP, C++, Python, Ruby, Visual Basic, Delphi, Go, R, and more. As long as your language can make a connection using ODBC (Open Database Connectivity), you should be good to go.
If you’re using a .NET language like C#, F#, or Visual Basic, then SQL Server will have a home-court advantage. Microsoft wrote the ADO.NET library, which facilitates access to databases and data services, specifically for SQL Server.
One final note: SQL Server offers the additional (and controversial) mechanism of invoking .NET code from a stored procedure. This can add all sorts of functionality within your database—but it also makes it easy for you to shoot yourself in the foot. Proceed with caution.
The bottom line: Both MySQL and SQL Server support the most common programming languages, although SQL Server has the advantage for .NET languages.
After this long, drawn-out MySQL vs. SQL Server comparison, which database is the best for you? There’s a lot of information to unpack here, and the right answer is still “it depends.” Here’s the best summary we can give:
Whether you go with SQL Server or MySQL, your database needs to connect smoothly with the rest of your IT infrastructure. In particular, you’ll need an intermediate API (application programming interface) layer that connects your database to the front-end user interface.
The good news is that DreamFactory has built a system that automatically generates code to connect your back-end database with your front-end GUI. With a bit of configuration and a few clicks of a mouse, DreamFactory turns your database into a production-ready REST API—and even generates the documentation alongside it.
DreamFactory supports all kinds of SQL databases: MySQL, SQL Server, and a long list of others. Want to learn more? Check out this video on how the DreamFactory platform works, and get ready to breathe a big sigh of relief.
Join the DreamFactory newsletter list.