Ich habe beide benutzt und festgestellt, dass MySql mehrere frustrierende Fehler hat, begrenzte Unterstützung für: IDE-Integration, Profilerstellung, Integrationsservices, Berichterstattung und sogar Mangel an einem anständigen Manager. Der Gesamtbetriebskosten von MSSQL Server wird auch als geringer als bei MySQL angepriesen (.net-Umgebung), aber bei offener Meinung könnte jemand auf einige Killer-Funktionen von MySql hinweisen?
Antworten
Zu viele Anzeigen?Ich habe MySQL in der Vergangenheit verwendet und benutze in letzter Zeit MSSQL, aber ich kann mich an nichts erinnern, das MySQL kann und MSSQL nicht kann.
Ich denke, das Kill-Feature von MySQL ist die Einfachheit. Für einige Projekte brauchen Sie einfach nicht die ganze Power, die Sie mit einem riesigen System wie MSSQL haben können. Ich habe eine UNIX-Herkunft und finde die einfache Konfigurationsdatei wie meine.ini ein Killer-Feature von MySQL.
Auch das Sicherheitssystem von MySQL ist viel weniger robust, aber es erledigt die Arbeit für die meisten Anwendungen richtig. Ich glaube, MySQL ist aus dieser Sicht selbst ein Killer und sollte so bleiben, damit junge Benutzer zuerst mit einer einfachen Ansicht von RDBMS eingeführt werden. Wenn Ihr Projekt groß genug wird, dass Sie einen Wechsel zu einem robusteren System in Betracht ziehen, dann kann MSSQL als Möglichkeit auftauchen.
Das ist mir passiert.
Das einzige, woran ich spontan denken kann, ist das Sperren. SQLServer hatte traditionell eine schlechte Sperrstrategie, die viele Menschen durcheinander gebracht hat.
Letztendlich sollten Sie verwenden, was Sie bevorzugen. Es ist nicht so, als ob MySQL nicht gut genug wäre, um mit MS SQL zu konkurrieren, z. B. verwendet Slashdot MySQL, daher hat es kaum Probleme mit hoher Skalierbarkeitsleistung.
Sein Killer-Feature ist jedoch, dass es kostenlos ist - Sie können so viele davon bereitstellen, ohne sich um Lizenzprobleme kümmern zu müssen. Das ist für die Verbreitung von Software wichtiger, als sich jemand vorstellen kann.
(Der Gesamtbetriebskosten ist schwer zu berechnen - und wird nur von bezahlten Beratern und anderen interessierten Parteien empfohlen. Ignorieren Sie das. MSSQL ist teuer und MySQL ist kostenlos.)
Vor ungefähr 6 Jahren habe ich eine benutzerdefinierte E-Commerce-Website mit ASP und MySQL für die Datenbank entwickelt. Zu dieser Zeit war MySQL definitiv die bessere Wahl als MSDE, das eine eingebaute Drosselung hatte, was mich genug beunruhigte, um MySQL zu verwenden. Auch der Unterschied im Programmieren zwischen der Verwendung von MySQL und MSDE/SQL war nicht so groß oder von großer Bedeutung.
Jetzt, all die Jahre später, versuche ich, den Code auf .NET umzustellen, und selbst nachdem ich kommerzielle MySQL-Treiber von CRLab gekauft habe, habe ich festgestellt, dass, wie Sie angedeutet haben, die IDE-Integration einfach nicht ausreicht.
Ich muss sagen, dass MySQL auch bei unseren Datenbanktabellen, die sich der 4-GB-Marke nähern, gute Arbeit leistet. Wenn ich also zu MSSQL wechsle, muss ich fortgeschrittene Versionen wie SQL Workstation oder höher erwerben ($$$) und nicht SQL Express verwenden, das ein Limit von 4GB hat.
All meine Erfahrungen haben meine Vorgehensweise bei der Entwicklung neuer Websites verändert. Jetzt verwende ich, es sei denn, es wird erwartet, dass viel Traffic entsteht, VistaDB und wechsle dann bei Bedarf zu SQL Server. VistaDB ist syntax- und datenquellenkompatibel mit SQL Server. Und das Beste daran ist, dass es nur eine einzelne Datei für die Datenbank und eine DLL für Ihren bin-Ordner ist.
Das ist mein Senf, basierend auf meinen persönlichen Erfahrungen beim Verwenden von MySQL in ASP und jetzt .NET.
Ich arbeite regelmäßig mit MSSQL, MySql und PostGres (unter Verwendung von .net, Java und PHP). Eines meiner Lieblingsdinge an MySQL (insbesondere im Vergleich zu MSSQL) ist die einfache Möglichkeit, vollständige Datenbank-Backups auszuführen und wiederherzustellen.
Das Modell von MSSQL, das .bak-Dateien verwendet, ist wirklich hässlich und zeitaufwändig (ein Thema für einen anderen Beitrag). Aber wenn Sie etwas wie automatisierte Tests oder automatisierte Build-Prozesse durchführen möchten (die den Aufbau einer Datenbank von Grund auf einschließen), kann es mit MySQL etwas einfacher sein.
Ein paar weitere Punkte:
Die Verwaltungstools haben sich seit den Anfangstagen sehr verbessert.
Wenn Sie an Transaktionen, Einschränkungen usw. interessiert sind, stellen Sie sicher, dass Sie Ihre Tabellen so definieren, dass sie den InnoDB-Speicher-Engine verwenden (anstatt MyISAM, das für Geschwindigkeit ausgelegt ist).
Ich vermisse das Schemagenerierungstool von MSSQL, aber ich denke, es gibt äquivalente Tools da draußen.
Wir haben einen Linux-Datenbankserver und einen Windows-Webserver (für .net-Anwendungen) mit großem Erfolg eingesetzt.
Wenn Sie etwas wie NHibernate oder eine andere Nicht-MS-Datenabstraktionsschicht verwenden, wird auch der Grund stärker, über MSSQL hinauszublicken...
Drei Punkte zu beachten; leider sind die ersten beiden widersprüchlich:
1) .NET und MySQL wurden nicht entwickelt, um miteinander zu interagieren, und es gibt keine offizielle Unterstützung von beiden Seiten. Sie werden zwangsläufig auf Probleme stoßen, wenn Sie versuchen, sie zusammen zu verwenden.
2) Wenn die Portabilität von Windows jemals ein Problem sein könnte (viel .NET-Code läuft über Mono recht gut auf anderen Plattformen), sollten Sie vermeiden, sich zu stark an MSSQL zu binden. Das bedeutet nicht, es nicht zu verwenden, sondern darauf zu achten, dass Sie sich nicht zu sehr auf seine speziellen Eigenarten verlassen.
3) TCO ist nur ein Schlagwort. Es ist kompletter Unsinn, wenn es von jemand anderem als Ihnen berechnet wird. Niemand kann eine solche Berechnung durchführen und ehrlich behaupten, dass sie außerhalb ihrer speziellen Umgebung von Bedeutung ist. Es gibt zu viele Faktoren, die größtenteils überhaupt nichts mit Dingen wie der Verfügbarkeit von Tools zu tun haben.
- See previous answers
- Weitere Antworten anzeigen