Ich benutze beide ziemlich regelmäßig und studiere derzeit für meinen Sql Server MCTS, also kann ich hier wohl ein paar nützliche Kommentare einwerfen.
SQL Server ist eine sehr viel umfangreichere Datenbank, insbesondere die Version 2008. MySQL unterstützt nicht einmal Spaltenbeschränkungen (zum Beispiel das Erstellen einer int-Spalte und dann das Einschränken des Werts auf 1 bis 1000 - kann dies in MySQL nicht automatisch erzwingen). SQL Server bietet Volltextindizierung, native XML-Spalten und -Manipulation, mehrere Transaktionsmodi, komplexe Sicherheitsangebote, Replikations- und verteilte Funktionen sowie eine großartige Management-Suite.
In Bezug auf Ihren C# -Kommentar, ja, SQL Server hat die Möglichkeit, CLR-Objekte zu importieren, was bedeutet, dass Sie einige .Net-Code kompilieren und in SQL Server einfügen können und Datenbankfunktionen verwenden. Dies ist besonders nützlich zum Erstellen neuer Aggregatfunktionen, da Sie Cursor umgehen und schnellere CLR-Code-Schleifen verwenden können.
Sie können SQL Server auch auf den Griff optimieren, bis hin zu den Sperr- und Isolationsmodi, die es verwendet, und der CPU/dem Arbeitsspeicher, die ein bestimmter Thread verwenden kann.
MySQL hingegen ist kostenlos und relativ einfach einzurichten, mit genügend Optionen, dass die meisten Website-Besitzer ziemlich glücklich sind, es für ihre grundlegenden CRUD-Anwendungen zu verwenden.
Wenn Sie Linq2Sql verwenden möchten, benötigen Sie SQL Server. Wenn Sie Tonnen von erweiterten Funktionen benötigen, ist SQL Server der Weg, um sicher zu gehen.
Dies sollte mit einem allgemeinen Vergleich der beiden helfen, unabhängig von C#: http://tinyurl.com/yll4aro –
Ich dachte nicht, dass dies eine vollständige Antwort verdient, aber ich werde kommentieren, dass ich denke, dass es selten ist, dass Menschen Verwenden Sie die CLR in SQL Server für ihren Hauptdatenzugriff. ADO.NET, LINQ und Entity Framework scheinen die Hauptauswahl zu sein. –
Wenn Sie an LINQ interessiert sind, brauchen Sie nicht viel über SQL Server zu wissen. Der Hauptzweck ist, dass LINQ den Datenzugriff abstrahiert, sodass Sie keine SQL-Abfragen direkt schreiben. –