SQL Server 2012 vs MySQL

Posted on 2013-12-16
Medium Priority
Last Modified: 2013-12-23
Hi Experts,
I have been developing .Net applications with MS SQL Server as the backend for a long time now.  The company that I work for has grown in size and with it, the COST of SQL Server licenses has alos grown.  Is continuing to develop in .NET, but switching to MySQL as the backend, a viable solution to eliminating the huge licensing cost of SQL Server?
Will I see a decrease in performance using MySQL?
What will the downfall/pitfall be in switching to MySQL?

Thanks in advance,
Question by:mainrotor
LVL 22

Assisted Solution

by:Nico Bontenbal
Nico Bontenbal earned 288 total points
ID: 39723406
Isn't SQL Server express an option then? Then you still have the same environment (with some limitations of course), but without the licencing costs.
LVL 39

Assisted Solution

by:Aaron Tomosky
Aaron Tomosky earned 572 total points
ID: 39724171
Use SQL express for under 10gb databases. No reason for full SQL for most projects.
LVL 31

Assisted Solution

by:Rich Weissler
Rich Weissler earned 284 total points
ID: 39724203
The biggest risk/cost that I've encountered with MySQL is finding qualified DBAs who work with it and really know it.  Most of the instances I've enountered have been set up by web developers who know just the minimum needed to get the server spun up.  When performance starts to suffer, they tend to start throwing an increasing number of indexes on their tables.

As Nicobo asked, have you considered SQL Server express an option?  If you are in an environment where the 'free' version of MySQL would be an option, presumably MSSQL Express Edition would satisfy your need as well.  If you are taking advantage of additional features of the databases, you may need the more capable editions of MySQL as well.

To answer the other two questions about pitfalls and performance problems -- that'll depend entirely on the expertise and support available to your DBAs.  If you have strong MySQL skills available, it'll be fine.  At least in my experience, finding or developing those skills in staff can be problematic.  That'd be the largest challenge.
[Webinar] Kill tickets & tabs using PowerShell

Are you tired of cycling through the same browser tabs everyday to close the same repetitive tickets? In this webinar JumpCloud will show how you can leverage RESTful APIs to build your own PowerShell modules to kill tickets & tabs using the PowerShell command Invoke-RestMethod.

LVL 51

Assisted Solution

by:Steve Bink
Steve Bink earned 284 total points
ID: 39724863
While SQL Server Express is certainly an option, presuming your databases fall below its ceiling, there is no reason not to use MySQL.

1) MySQL is free

2) MySQL uses SQL-92 standard syntax, plus some proprietary syntax, just like Microsoft's T-SQL.  There is a very shallow learning curve when moving from one to the other.

3) MySQL offers most of the core functionality available in MSSQL, including tables, views, triggers, stored procedures, transactions, and user security.

4) MySQL is extremely well-documented.  What you can't find in MySQL's manual can be found in the huge community surrounding it.

While Razmus does have a point regarding unqualified DBAs, I assert that the same problem exists with MSSQL.  Those individuals tasked with creating or maintaining a database, but lack the skill set to do so professionally, will always make things more difficult than they need to be.  It really doesn't matter which platform is being used if it is not being used optimally.

As far as performance considerations, I've found the two to be comparable, but that is only my anecdotal evidence.  In my brief research into benchmarks for this question, I found MSSQL2008 to be a better performer in general over MySQL5.5.  The stats I looked at were not specific about the configurations each used - they only mentioned the engine (MyISAM or InnoDB) and the statement type (SELECT, INSERT, etc.).  Still, if your application will be experiencing heavy loads, it is definitely worth your while to research those differences more thoroughly.  Be very clear about one thing: the database platform will only perform as well as its configuration allows.  Regardless of which platform you choose, you need to optimize its configuration for your environment.

Finally, the primary difference I've found between MySQL and MSSQL is how much of a feature set you get for your money.  MySQL is free, and comes with all the basics you need.  It does not have a fancy GUI management interface (no, I do not count the Workbench), nor does it have built-in integration with other services, such as email (IMHO, databases do not send email...).  If you want those things, as well as all the other API stuff available, then you'll need to shell out the license fee for MSSQL.
LVL 35

Assisted Solution

by:David Todd
David Todd earned 284 total points
ID: 39724981

Just a comment on routinet's response - what happens if you develop an application, that's fine with either SQL Express or MySQL, but then, you need some of these other features? Or the application suddenly becomes incredibly critical? And you now need the database to email alerts etc.

You know SQL.

SQL Express can be upgraded, or the databases migrated to a fuller featured version of SQL quite easily.

LVL 51

Expert Comment

by:Steve Bink
ID: 39725736

That is absolutely true.  MSSQL can certainly make things convenient by doing all these things together in one box, but it is also one of the attributes that makes MSSQL licensing outside the reach of many businesses.  Absent the monolith, it takes time and energy to frankenstein the various parts of that together from open source.  But, it is possible to do, and it becomes easier to do it every day.

On the other hand, when your monolith changes, it is going to touch that much more.  If I'm using my little frankenstein, then I know if MySQL gets upgraded, I don't have to worry about how that affects my email reporting.  I only need to worry about my db abstraction layer, not the tens of dozens of other contact points my application could have.  

Both paradigms have their place.  This question happens to focus on "What if I don't pay Microsoft all this money?"  The answer is that you'll be left with a whole bunch of extra work if you need something above and beyond a database, but it is all do-able.
LVL 39

Assisted Solution

by:Aaron Tomosky
Aaron Tomosky earned 572 total points
ID: 39725767
Short answer: dotnet devs should use mssql express until there is a reason not to. The first reason is usually db size over 10GB. The next most common is clustering and replication. If you don't need something missing from mssql express, I don't see the point in even thinking about MySQL for .net stuff.
LVL 51

Accepted Solution

Ted Bouskill earned 288 total points
ID: 39725950
As an added comment to using MS SQL Express.  Use feature sharding to break up the databases as well.  You don't need one massive database for one application.  Using multiple databases for one application to avoid the 10 GB limit whenever possible.

I use both MySQL and MS SQL.  The toolset for MS SQL is superior especially when you use 3rd party tools like what Red Gate Software has to offer.  What you pay for software you save in labor.

Also, with a profitable business, software licensing is a capital expenditure and a tax write off.

Personally I only use MySQL when I have too.  Cheap client or a product that uses it for a backend.

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When trying to connect from SSMS v17.x to a SQL Server Integration Services 2016 instance or previous version, you get the error “Connecting to the Integration Services service on the computer failed with the following error: 'The specified service …
This shares a stored procedure to retrieve permissions for a given user on the current database or across all databases on a server.
Viewers will learn how to use the SELECT statement in SQL and will be exposed to the many uses the SELECT statement has.
Stellar Phoenix SQL Database Repair software easily fixes the suspect mode issue of SQL Server database. It is a simple process to bring the database from suspect mode to normal mode. Check out the video and fix the SQL database suspect mode problem.

599 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question