Frage

Ich bin ein ASP.NET Entwickler verwendet hat Microsoft SQL Server für alle meine Datenbank benötigt (beide auf der Arbeit und für persönliche Projekte).

Ich überlege ausprobieren LAMPE - stack für einige meiner persönlichen Projekte.

Was sind einige der wichtigsten Unterschiede zwischen MySQL und SQL Server?Ist mit gespeicherte Prozeduren eine gängige Praxis in MySQL?

Irgendwelche Ratschläge oder Ressourcen, die Sie empfehlen würde, um mir zu helfen mit dem Schalter?

Für diejenigen, die haben Erfahrung mit beiden, gibt es irgendwelche fehlenden Merkmale aus MySQL?

War es hilfreich?

Lösung

Eine Sache, die Sie achten müssen, ist die relativ starke Unterschiede in der Art der SQL-Server und MySQL-Implementierung der SQL-syntax.

Hier ist eine schöne Vergleich der Verschiedenen SQL-Implementierungen.

Nehmen wir zum Beispiel einen Blick auf die top-n-Abschnitt.In MySQL:

SELECT age
FROM person
ORDER BY age ASC
LIMIT 1 OFFSET 2

In SQL Server (T-SQL):

SELECT TOP 3 WITH TIES *
FROM person
ORDER BY age ASC

Andere Tipps

Viele Kommentare hier Klang eher wie religiöse Argumente als das wirkliche Leben Aussagen.Ich habe gearbeitet, seit Jahren mit MySQL-und MSSQL-und beides sind gute Produkte.Ich würde wählen, MySQL-basierte hauptsächlich auf die Umgebung, in der Sie arbeiten.Die meisten open-source-Projekten die Verwendung von MySQL, so dass, wenn Sie in die Richtung gehen MySQL ist Ihre Auswahl.Wenn Sie entwickeln etwas mit .Net die ich wählen würde, MSSQL, nicht, weil es viel besser ist, sondern nur eine Ursache, die ist, was die meisten Leute verwenden.Eigentlich bin ich derzeit an einem Projekt, das verwendet ASP.NET mit MySQL und C#.Es funktioniert perfekt in Ordnung.

Ich kann nicht glauben, dass niemand erwähnt, dass MySQL nicht unterstützt, Common Table Expressions (CTE) / "mit" - Aussagen.Es ist ein ziemlich nervig Unterschied.

MySQL ist es eher wahrscheinlich-Datenbank Korruption Probleme und es nicht beheben diese automatisch, wenn Sie passieren.Ich habe mit MS SQL-Server seit der version 6.5 und kann mich nicht erinnern, eine Datenbank Korruption Problem nehmen die Datenbank offline.Die wenigen Male, die ich habe mit MySQL in einer Produktionsumgebung, eine Datenbank Korruption Problem nahm die gesamte Datenbank offline, bis wir liefen die magic "bitte korrigieren Sie meine beschädigten Indexes ist", was von der Kommandozeile.

MSSQL Transaktion und journaling-system, in meiner Erfahrung, Griffe einfach alles - inklusive einer aus-und einschalten oder hardware-Fehler - ohne Beschädigung der Datenbank, und wenn etwas Durcheinander gebracht, es behebt Sie automatisch.

Das ist meine Erfahrung, und ich würde mich freuen zu hören, dass dieses Problem behoben wurde oder wir machen etwas falsch.

http://dev.mysql.com/doc/refman/6.0/en/corrupted-myisam-tables.html

http://www.google.com/search?q=site%3Abugs.mysql.com+index+corruption

Ehrlich gesagt, ich kann nicht einen einzigen Grund für die Verwendung von MySQL, anstatt MSSQL.Das Problem, bevor Sie verwendet werden, Kosten aber SQL Server 2005 Express ist kostenlos, und es gibt viele web-hosting-Unternehmen, die bieten full-hosting mit sql server für weniger als $5.00 pro Monat.

MSSQL ist einfacher zu bedienen und hat viele Funktionen, die nicht existieren in MySQL.

Alles in MySQL scheint zu geschehen näher an das Metall als in MSSQL, Und die Dokumentation behandelt es so.Besonders für die Optimierung, die Sie brauchen, um zu verstehen, wie Indizes, system-Konfiguration und der Optimierer die Interaktion unter verschiedenen Umständen.

Die "optimizer" ist ein parser.In MSSQL Ihre Abfrage-plan ist oft eine überraschung (in der Regel gut, manchmal nicht).In MySQL, es ist ziemlich viel tut, was Sie gefragt haben, es zu tun, so wie man es erwartet.Was bedeutet, dass Sie selbst benötigen, um ein tiefes Verständnis der verschiedenen Möglichkeiten, die es getan werden könnte.

Nicht gebaut, um eine gute TRANSAKTION Modell (Standard MyISAM-engine).

Datei-system-setup ist das Ihr problem.

Alle Datenbank-Konfiguration ist Ihr problem - vor allem verschiedene cache-Größen.

Manchmal scheint es am besten zu denken, es als eine ad-hoc, verherrlicht isam.Codd und Date tragen nicht viel Gewicht Sie hier.Sie würden sagen, dass es ohne Verlegenheit.

Ich denke, eines der wichtigsten Dinge zu beachten ist, dass Versionen vor MySQL 5.0 nicht sichten, Trigger und gespeicherte Prozeduren.

Mehr von dies erklärt sich in der MySQL 5.0-Download-Seite.

@abdu

Das wichtigste, was ich habe festgestellt, dass MySQL über MSSQL ist die Zeitzonen-Unterstützung - die Fähigkeit, schön Wechsel zwischen den Zeitzonen, die Achtung Sommerzeit ist fantastisch.

Vergleichen Sie diese:

mysql> SELECT CONVERT_TZ('2008-04-01 12:00:00', 'UTC', 'America/Los_Angeles');
+-----------------------------------------------------------------+
| CONVERT_TZ('2008-04-01 12:00:00', 'UTC', 'America/Los_Angeles') |
+-----------------------------------------------------------------+
| 2008-04-01 05:00:00                                             |
+-----------------------------------------------------------------+

zu den Verrenkungen die beteiligten am diese Antwort.

Als für die "einfacher zu verwenden' Kommentar, ich würde sagen, der Punkt ist, dass Sie anders sind, und wenn Sie einen kennen, wird es ein Aufwand in das erlernen der anderen.

Beide DBMS-Produkt Sql server ist eine kommerzielle Anwendung, während MySql ist eine opensouces Anwendung.Sowohl die Produkt-ähnliche Funktion,jedoch sql-server verwendet werden soll für eine enterprise Lösung ,während mysql kann für eine kleinere Umsetzung.wenn Sie benötigen Funktion wie recovery,Replikation,granalar Sicherheit und bedeutsam,Sie müssen sql server

MySql nimmt weniger Bereiche auf der Festplatte und benötigt weniger Speicher und cpu als sql server

Jemand eine gute Erfahrung mit einem "port" für eine Datenbank, die von SQL Server MySQL?

Dies sollte ziemlich schmerzhaft!Ich wechselte MySQL-Versionen von 4.x 5.x und verschiedene Aussagen nicht mehr funktionieren wie früher.Der query analyzer wurde "verbessert", also Aussagen, die früher dran für die Leistung würde nicht mehr funktionieren, wie erwartet.

Die Lehre aus der Arbeit mit einer 500-GB-MySQL-Datenbank:Es ist ein subtiles Thema und alles andere als trivial!

@Cebjyre.Die IDE, ob Enterprise Manager oder Management Studio ist besser als alles, was ich bisher gesehen habe für MySQL.Ich sage " einfacher zu verwenden, weil ich kann viele Dinge tun, MSSQL, wo MySQL hat keine Analoga.In MySQL habe ich keine Ahnung wie optimieren Sie Abfragen, indem Sie einfach an der Abfrage-plan oder ein Blick auf die Statistiken.Der Indexoptimierungs-Assistent in MSSQL findet die meisten Schätze zu arbeiten, was Indizes sind fehlende oder fehlgeleitet werden.

Ein Nachteil von MySQL ist, es ist keine max Größe für eine Datenbank.Die Datenbank würde nur in der Größe erhöhen, bis es füllt den Datenträger.Stell dir vor, wenn diese Festplatte Austausch von Datenbanken mit anderen Anwendern und plötzlich alle Ihre Anfragen werden scheitern, weil Ihre Datenbanken können Sie nicht wachsen.Ich habe berichtet, dieses Problem zu MySQL-vor langer Zeit.Ich glaube nicht, dass es noch nicht fest.

Verbringen Sie einige Zeit mit MySQL aus, die MSSQL to MySQL syntax POV ich fand mich immer wieder auf das beschränkt, was ich tun konnte.

Es gibt bizzare Grenzen bei der Aktualisierung einer Tabelle, während refrencing den gleichen Tisch bei einem update.

Zusätzlich AKTUALISIEREN VON funktioniert nicht und das Letzte mal überprüfte ich Sie nicht unterstützen, die Oracle MERGE IN syntax entweder.Das war ein show-stopper für mich und ich hörte auf zu denken ich würde Sie überall mit MySQL nach, dass.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top