MySQL vs. MSSQL
-
Hallo,
ich habe eine Frage. Ich habe die Aufgabe, eine Lizenzverwaltung zu Programmieren.
Als Datenbank kann ich mich zwischen MySQL und MSSQL entscheiden. Lizenzen und sowas sind dafür alles da.
Ich weiß nur nicht, was für die eine, und was für die andere Spricht. System soll auf Windows Server 2003 laufen.Könnt ihr mir helfen?
-
die nehmen sich nix.
ich würde mySQL empfehlen, weil ich schon einiges damit gemacht habe, aber msSQL dürfte auch nicht so schlecht sein...
-
Ich nehme an, das soll eine betriebsinterne Lösung werden.
Wenn auf dem Server schon der MS-SQL-Server installiert ist, dann würde ich den nehmen. Sonst MySQL, da dieses leichter aufzusetzen sein sollte.
-
also wenn der server auch anderen zwecken mittelfristig dienen soll würd ich sogar eher den MSSQL server nehmen, der sollte sowieso am besten mit MS produkten harmonieren
Außerdem hätte man mit blick auf sharepoint schon alles zusammen.
-
MySQL ist grundsätzlich ok, aber die Windows-Version ist deutlich schwächer als die Linux-Version. Wenn Du daher einen Windows-Server hast, bleib lieber beim MS-SQL, damit wirst Du glücklicher.
-
Marc++us schrieb:
MySQL ist grundsätzlich ok, aber die Windows-Version ist deutlich schwächer als die Linux-Version.
in welcher hinsicht? geschwindigkeit?
-
pale dog schrieb:
Marc++us schrieb:
MySQL ist grundsätzlich ok, aber die Windows-Version ist deutlich schwächer als die Linux-Version.
in welcher hinsicht? geschwindigkeit?
Komform (Der Manager), Funktionalität (Try/Catch-Blöcke) und Speed.
-
Nimm unbedingt MSSQL wenn es die 2005er ist.
Vorteile:
Geschwindigkeit bei großen Tabellen und vielen INSERTS/UPDATES
Replikation die auch funktioniert
Nahtlose Integration in ASPNETNachteil: teuer
Hintergrund:
Wir hatten Datenbanken auf MySQL. Gesamtgröße ca. 6 GB mit einzelnen Tabellen von > 10 Mill ROWS.Unterschied im Tempo ca. 360fach insbesondere bei INNERJOIN etc.
Viele fehlerhafte Tabellen welcher man regelm. Reparieren muss was bei großen Tabellen sehr lange dauert und somit nicht produktiv verfügbar ist.
Replikation unter MySQL macht immer wieder Fehler wodurch die Replikation stoppt.
Hier gibt es zwar 2 Möglichkeiten der Replikation (SQLQUERYS und BINREPLI) aber wenn man die Konsistenz der Daten erhalten will und ein Query wie z.B.INSERT INTO SELECT * FROM
wobei die INSERTTABELLE eine ID hat
funktioniert nicht richtig dann unterbricht die Replikation mit einem DUPLICATE KEY. Somit muss man die Tabelle händisch ändern und man hat keinen Spiegel mehr den irgendwo fehlen die Daten.
DBSPIEGEL geht nur wenn man die Tabellen dann von einem System aufs andere kopiert und dann erst den MASTER/SLAVE staret. Ist bei einiege GB sehr Zeitaufwendig.
Bei MSSQL macht man dies vom Masterserver und spielt automatisch den SNAPSHOT auf den SLAVE.
Sicherung der DB bei MYSQL ist nicht möglich ohne den Betrieb einzuschänken.
Sicherung eines DUMPS dauert bei 6 GB ca. 20 MIN.
Bei MSSQL ca. 3 MIN um einen SNAPSHOT zu erstellen.
Rücksicherung geht bei MySQL schneller aber man muss mit Dateien > 4 GB hantieren.
Sicherungsprogramm wie Backupexec funktioneren bei MSSQL perfekt. Rücksicherung auf einen anderen Rechner in 4 Handgriffen erledigt. Bei MySQL nicht möglich.
Es gibt noch viel mehr unterschiede die eben den Preis ausmachen.Fazit aug Grund meiner Erfahrung und ebenfalls wechsel von MySQL zu MSSQL:
Nimm MSSQL wenn Du es eh schon hast.
MySQL ist nicht als Unternehmens-DB gedacht worden. Fürs WEB unter Linux sehr schnell wenn es wenige INSERTS/UPDATES gibt.
-
Fincki schrieb:
Ich nehme an, das soll eine betriebsinterne Lösung werden.
Wenn auf dem Server schon der MS-SQL-Server installiert ist, dann würde ich den nehmen. Sonst MySQL, da dieses leichter aufzusetzen sein sollte.Haben beide eine setup.exe
Also sind beide gleich leicht zu installieren.
-
pale dog schrieb:
Marc++us schrieb:
MySQL ist grundsätzlich ok, aber die Windows-Version ist deutlich schwächer als die Linux-Version.
in welcher hinsicht? geschwindigkeit?
Die Unterschiede der Linux und Windows-Version sind 1000 zu 1.
Die Linuxversion ist um längen schneller.
Bei Windows muss man sogar die Anzahl Ports unter Windows freigeben wenn man mehr als 5000 Connects haben will.
Windows läßt default nur 5000 Ports zu. Bis diese wiederverwendet werden können kann es bereits sein das keine mehr frei sind.
-
Leider wird in letzter Zeit der MySQL sehr oft für Windows eingesetzt, weil er kostenlos ist und die Leute eine DB in der Applikation haben wollen.
Warum dann aber nicht die kostenlose Microsoft SQL Server 2005 Express Version eingesetzt wird, ist mir doch ein Rätsel... gerade für eine kleine Apps, wo man eine DB mit wenigen Clients fährt, ist das die wesentlich bessere Wahl.
-
zunächst mal Danke für Die sehr ausführliche Beschreibung Deiner Erfahrungen mit MySQL! Ich muss zu oft mit Vertretern der MySQL-Fangemeinde diskutieren; sowas ist Wasser auf meine Mühle! Nach wie vor sehe ich immer wieder meine Einschätzung bestätigt dass MySQL trotz allem Hypes in mission-critical Applikationen eigentlich nichts zu suchen hat.
Es bietet m.E. nur einen wirklichen Vorteil in der Entwicklungsphase; DB Designer mit MySQL halte ich für ein sehr gutes Toolset; sogar für besser als ERWin.
Was mich interessieren würde :
Welche MySQL-Version war das?
Welche MySQL-Engines(s) wurden eingesetzt?
Spielten Clustered Indices unter MSSQL eine Rolle? 360x scheint mir darauf hinzudeuten.
Waren die FK des INNER JOINs indiziert?Grüsse
*this
-
die version hat keine rolle gespielt. haben bei V3 begonnen und sind zum schluß bei V5 gelandet.
Die Rechner hatten die gleiche Hardwareconfig. 4x XENON 10 GB MEM
Die MySQL war bis zum letzten optimiert.
Warum MSSQL so schnell ich kann ich dir nicht sagen. Abfragen welche damals oft 2 Min brauchten gehen jetz in weniger als 2 Sekunden. Das Tabellendesign ist fast gleich.
Kein Fremdschlüssel.
-
Marc++us schrieb:
Leider wird in letzter Zeit der MySQL sehr oft für Windows eingesetzt, weil er kostenlos ist und die Leute eine DB in der Applikation haben wollen.
Warum dann aber nicht die kostenlose Microsoft SQL Server 2005 Express Version eingesetzt wird, ist mir doch ein Rätsel... gerade für eine kleine Apps, wo man eine DB mit wenigen Clients fährt, ist das die wesentlich bessere Wahl.
Für so einen Zweck wäre wohl SQLite oder FireBird (ehemals InterBase) nicht schlecht.