• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2221
  • Last Modified:

SQL Server 2012 vs MySQL

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,
7 Solutions
Nico BontenbalCommented:
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.
Aaron TomoskySD-WAN SimplifiedCommented:
Use SQL express for under 10gb databases. No reason for full SQL for most projects.
Rich WeisslerProfessional Troublemaker^h^h^h^h^hshooterCommented:
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.
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

Steve BinkCommented:
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.
David ToddSenior DBACommented:

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.

Steve BinkCommented:

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.
Aaron TomoskySD-WAN SimplifiedCommented:
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.
Ted BouskillSenior Software DeveloperCommented:
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.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: Microsoft Azure 2017

Azure has a changed a lot since it was originally introduce by adding new services and features. Do you know everything you need to about Azure? This course will teach you about the Azure App Service, monitoring and application insights, DevOps, and Team Services.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now