views:

290

answers:

5

Hello everyone,

I need to develop a mid-sized Inernet facing web site (e.g. less than 1000 users) for information sharing and simple workflow. Since limitation of budget, I am choosing free database. And since the developers are familiar with .Net, C#/ASP.Net is the choosen programming language. I am using Windows Server 2008 x64 edition as OS.

I want to know in my situation, pros and cons about using MySQL or SQL Server Express (free)? I think conclusion may be different to different people/perspective, but learning the facts (pros and cons) will be benefit for me to make decision.

thanks in advance, George

+4  A: 

Considering you're committing to a Microsoft stack for you code and operating system, SQL Server Express feels like a natural fit. You'll likely be able to find better community support around an end to end Microsoft stack versus a hybrid stack including MySQL.

SQL Server Express has some limitations but if your project reaches the scale where that becomes an issue, hopefully it will be generating enough traffic/revenue to support an upgrade to a non-free SQL Server product.

Asaph
I heard SQL Server Express has limitations like footprint not larger than 4G, not sure whether performance is better from MySQL?
George2
Seems MySQL is always (from performance/function/foorprint limitation) superior than SQL Server express? Is that true?
George2
+8  A: 

If SQL Server Express will meet your needs without running into its limitations, and your developers/admins are most familiar with MS SQL, then use it.

Otherwise, use MySQL.

In these situations, the overarching strategy is usually to use what you know, as long as it will meet your technical needs.

The limitations of SQL Server Express are:

  • Limited to one processor at a time (although it can use all cores of a multicore processor)
  • Can use a max of 1GB of RAM for buffering data
  • Max database data size of 4GB
  • SQL Profiler not included (but can be used with inexpensive developer edition tools)
  • Job scheduling not provided (IIRC)
  • Import/Export not provided (IIRC)

SQL Server Express still uses the same database engine as every other version, and it's not performance-limited beyond the above restrictions.

phoebus
Plus, if you do run into the above limitations, migrating to for example the standard edition of SQL server (perhaps through a hosted solution) would be quite easy.
Anders Fjeldstad
Good point Anders!
phoebus
if you hit the limits of express, capacity-wise, and are still not making enough money to upgrade to standard edition, either your business model, or your use of databases is seriously flawed =)
David Hedlund
I heard SQL Server Express has limitations like footprint not larger than 4G, not sure whether performance/footprint is better from MySQL?
George2
Seems MySQL is always (from performance/function/foorprint limitation) superior than SQL Server express? Is that true?
George2
Import/Export is now included in SQL Express 2008 Management Tools: http://msdn.microsoft.com/en-us/library/cc645993.aspx
Zhaph - Ben Duguid
You can use SQL Profiler from the (very inexpensive) Developer edition with SQL Express.
RickNZ
Thanks Zhaph and Rick, updated my list.
phoebus
@George Both provide relational databases. IMO, MS SQL provides a more robust set of tools for DB management, and T-SQL as a language is pretty powerful. Plus, it offers superior integration with .NET tools. I'd say from a function standpoint, MS SQL Express is equal to or ahead of MySQL. The question really is whether the familiarity + integration makes up for the restrictions (which may be moot if you don't need more than 4GB DBs/1 proc/1GB ram).
phoebus
+1  A: 

Depends on how heavy the load will be on the server and size of the database. SQL Server Express has limitations including:
- 1GB RAM max (this alone may be a deciding factor)
- 1 CPU
- 4GB database size limit

There's a full list of SQL Server features by edition here With these 3 points alone, you should be able to tell instantly whether you have to rule out SQL Server Express from the word go.

AdaTheDev
So, seems MySQL is much superior than SQL Server express?
George2
Well, SQL Server Express has it's limitations which depending on your scenario could make MySQL the better bet. I can't fairly comment on the pros and cons of MySQL as I don't use it. I personally always use SQL Server, but I pay a very minor amount for SQL Server Enterprise Edition hosting. If the Express limitations would be a problem for you then you either need to pay for SQL Server hosting to get a different edition, if you don't want to pay, then MySql is your best bet.
AdaTheDev
+1  A: 

Why not consider postgresql? It's free and reliable ADO.Net provider drivers are available:

e.g. http://www.devart.com/dotconnect/postgresql/

davek
Seems postgresql is always (from performance/function/foorprint limitation) superior than SQL Server express?
George2
This is very subjective, but I've found it to be much less "quirky" than MySql, and without the built-in limitations of SQL Server Express. Things like concurrency, row-versioning etc. seem to be implemented in an Oracle-like fashion i.e. stable and efficient.
davek
+2  A: 

From the MySQL vs MS SQL Server:

MySQL can run on Windows without complaint but performs better on UNIX and UNIX-like systems. Additional performance gains can be had by using MySQL on a 64-bit processor.

Note that some of the statements in that section may be considered a bit disingenuous - such as "MySQL has proven to be faster in its basic table format, MyISAM" because MyISAM doesn't appear to support things like "Foreign key constraints", those little things that help make a relational database relations self enforcing.

So as with many things, there are many factors to consider when talking about performance.

Zhaph - Ben Duguid
That link is comparing SQL 2000 to MySql 5.0. SQL 2000 is now two generations old; many of the referenced values are no longer correct.
RickNZ
True, but I've not noticed my SQL Server instances getting slower as I've moved from SQL2k to SQL2k8, and one that seemed like a fair comparison of the features, rather than either side's usual FUD or marketing spin (e.g. http://www.microsoft.com/sqlserver/2008/en/us/compare-mysql.aspx).
Zhaph - Ben Duguid