Sunday, February 6, 2011

MySql (LAMP) versus SQL Server

I was recently asked for comments on LAMP versus SQL Server. LAMP is a suite of products and SQL Server is a RDBMS, LAMP usually mean MySQL is being used as a RDBMS and thus I will give my thoughts on SQL Server versus MySQL. Often the issue boils down to business factors and not technical issues.

"MySQL Developer DC""SQLServer Developer DC"
  • $60,000+ (843)
  • $80,000+ (519)
  • $100,000+ (218)
  • $120,000+ (70)
  • $140,000+ (38)
  • So SQLServer developers appear to be cheaper (at least they are not significantly more expensive). This means available local supply of resources, especially those holding certifications(proof of minimum knowledge) is an important factor. Both offer certifications. If all of the local expertise is from using MySQL for informational web sites and you are planning to do high volume processing – you likely have a major expertise challenge.

    • SQL Server is "a head of the curve" for features, MySQL is behind. If you don't need the features it's immaterial.
      • For example SQL Server is C2 certified, MySql is not.
      • If you need latest security features, then SQL Server is definitely the only choice.
    • Since things like ODBC and other connection drivers makes the backend immaterial to the front end -- it's a coin flip.
      • Caveat: some drivers are lousy – so make sure you know the relative performance and reliability of your drivers – this is largely a MySQL issue.
    • The last item is the availability and effectiveness of database tuning advisors (DTA). This is available with all SQL Server versions except Express.
      • I have often seen a 90+% improvement when using SQL Server DTA. Without automated tuning tools, you are going to have performance issues or high manpower costs over time.
      • I would generally suggest design and test on SQL Server Web Edition, do a full database tuning and then:
        • port the database to MySQL if the customer want that route – or
        • move to SQL Server Express (less work and thus cheaper).
    • Last item is simple, check the current status of known vulnerabilities for each product at http://nvd.nist.gov/ You may be surprised that a lot of known defects are not fixed in either product....
      • The issue of how each product gets patched is an important issue... will vulnerability patches be applied as they become available, or will it depend on some human to remember to do it?

    Hope that helps explain the significant differences from my perspective. I’m usually working with the upper end of database applications and thus SQL Server is most common. I have used MySQL on some occasion but usually I have gotten frustrated by features missing in it. For example, I use XML columns a lot and MySQL is still playing catch up (IMHO).

    To use a car analogy – is price important? is having a 5 star crash rating important? is speed control, electronic stability systems or anti-lock break important? Is ground clearance important? It is those types of questions that decides the issue often – not the upholstery or the stereo system that the car comes with…

    2 comments: