it-swarm.com.de

MySQL vs. SQL Server vs. Oracle

Ich habe immer nur MySQL und kein anderes Datenbanksystem verwendet.

Bei einer Unternehmensbesprechung kam heute eine Frage auf, und ich war verlegen, dass ich nicht wusste: Welche bahnbrechenden Funktionen bieten MS oder Oracle einem Entwickler, die MySQL nicht bieten, und welche ermöglichen es MS und Oracle, ihre Systeme in Rechnung zu stellen?

78

Ich denke, dass andere Kommentatoren zu Recht alle zusätzlichen, nicht zum Kern gehörenden RDBMS-Fähigkeiten hervorheben, die mit den kommerziellen Lösungen gebündelt sind.

Hier ist eine Matrix von Oracle-Editionen und -Funktionen, die es wert wäre, nur um die "zusätzlichen" Funktionen zu verstehen, insbesondere im Zusammenhang mit den Kosten für die Entwicklung und den Support Ihrer eigenen Version (sofern dies überhaupt möglich ist). auf einem Produkt wie MySQL: http://www.Oracle.com/us/products/database/product-editions-066501.html

Wenn Sie beispielsweise die Anforderung hatten, dass "Benutzer frühere Versionen von Daten wiederherstellen können, die sie bis zu einer Woche nach dem Festschreiben der Änderungen gelöscht/aktualisiert haben", dann impliziert dies einen gewissen Entwicklungsaufwand, den ich denke wäre viel höher auf einem System, das keine eingebaute Funktion wie Oracle Flashback Query hatte.

36
David Aldridge

Die reinen RDBMS-Schichten von Oracle und MSSQL bieten hauptsächlich eine ausgereiftere programmierbare Umgebung als MySQL und InnoDB. T-SQL und PL/SQL können von gespeicherten MySQL-Prozeduren und -Triggern noch nicht abgeglichen werden.

Die anderen Unterschiede sind syntaktische und geringfügige semantische Unterschiede, die die Dinge einfacher oder schwieriger machen (wie Top 500 gegenüber Limit/Offset).

Der wahre Killer ist jedoch, dass es eine Menge integrierter Tools und Services auf den RDBMS-Ebenen von MSSQL (Reporting Services, Analysis Services) und Oracle (Data Warehousing, RAC) gibt, die MySQL (noch) nicht hat.

23
Vinko Vrsalovic

MySQL ist nicht kostenlos!

Es wird allgemein als kostenlos eingestuft, aber Sie verkaufen oder vertreiben Softwarepakete, die MySQL enthalten, und es unterliegt strengen Einschränkungen. In diesen Fällen ist es nur für Open Source-Projekte oder gemeinnützige Organisationen kostenlos. Wenn Sie es schaffen, die Datenbank und die Treiber vollständig von der restlichen Anwendung zu trennen und Ihren Kunden dazu zu zwingen, MySQL selbst herunterzuladen und zu installieren, sind Sie wahrscheinlich in Ordnung.

Andernfalls kostet die "Standard" -Version 2.000 USD/Jahr, was in etwa mit den Lizenzkosten für SQL Server vergleichbar ist.

Beide sind sehr gute Datenbanken, aber zu den Vorteilen von SQL Server gehören:

  • Eine reiche und ausdrucksstarke prozedurale Sprache (T-SQL)
  • Ein besseres Abfrageoptimierungsprogramm und eine bessere Leistung in schreibintensiven Umgebungen
  • Umfangreiche Hilfstools und -funktionen, darunter eine Programmierumgebung, ein ETL-Tool (SSIS), eine Dimensionsmodellierung (SSAS), eine Berichtsumgebung (SSRS) und ein relativ ausgefeilter Job Scheduler.
  • Interaktives Debuggen von gespeicherten Prozeduren und UDFs.
  • Ein relativ einfach zu bedienendes fensterbasiertes Verwaltungstool, mit dem Sie die meisten Verwaltungsaufgaben auf "klickende" Weise ausführen können.

Viele Menschen lehnen es ideologisch ab, Microsoft-Tools zu verwenden oder an eine Windows-Umgebung gebunden zu sein, und das kann ich verstehen. Aber MySQL ist NICHT kostenlos für den Geschäftsgebrauch, und das scheint nicht allgemein verstanden zu werden.

Informationen zu den Lizenzrichtlinien von MySQL finden Sie auf der folgenden Website: http://www.mysql.com/about/legal/licensing/index.html

12
Curt

Einige andere Dinge, die Oracle über MySQL hat.

  • Warteschlangen
  • interne Auftragsplanung
  • ausgereifte Sprache für gespeicherte Prozeduren
  • patitionierte Tabellen
  • feinkörnige Zugangskontrolle und -prüfung
  • starke Wiederherstellungsfunktionen (z. B. Flashback, RMAN, Dataguard)
  • entfernte Datenbankverbindungen
  • anwendung Express
9
Matthew Watson

Bis ich RDBS von anderen Anbietern verwaltet habe, haben Oracle-Leser häufig "keine Schreiber blockiert, keine Leser blockiert", bedeutete mir das wenig. Ich wusste wirklich nicht viel über die Behandlung von Sperrproblemen in 8 Jahren als Oracle-DBA. 2 Jahre Informix und 3 oder SQL Server und vertraue mir, ich weiß viel mehr über das Sperren.

Ich würde also zusätzlich zu den Kommentaren zu Support- und Nicht-RDBMS-Funktionen das Sperrverhalten hinzufügen.

8
Karl

Es gibt zu viele Funktionen zum Auflisten. Siehe Wikipedia-Referenz in der Nachricht von nullptr. Ich nehme jedoch an, dass die eigentliche Frage, die bei einem Meeting gestellt wurde, lautet: "Für einen Entwickler bietet MySQL eine umwerfende Funktionalität, die es MS und Oracle ermöglicht, ihre Systeme in Rechnung zu stellen nd die effektiv von Microsoft genutzt werden kann unsere Firma? "

Alle Vorteile sind wirklich Vorteile, wenn sie auf Ihre Bedürfnisse abgestimmt sind ...

5
ThinkJet

Oracle Tabellencluster und einzelne Tabellen-Hash-Cluster (die Sie auch in SQL Server nicht finden werden).

5
Nils Weinander

MySQL bot nicht die reichhaltigere Programmierumgebung, die Oracle und MSSQL anboten, insbesondere in frühen Inkarnationen, als es noch nicht einmal gespeicherte Prozeduren gab. Aus meiner Sicht tendiere ich dazu, den größten Teil meiner Geschäftslogik über DAOs oder ORM-Mapper usw. in die Anwendung zu integrieren. Daher ist die Datenbank-Engine darunter weniger wichtig und die Anwendung ist theoretisch transportabel. Aus Sicht der Verwaltung bietet MSSQL eine Reihe von Vorteilen (von denen viele bereits aufgeführt sind), die das Besitzen der Datenbank erheblich vereinfachen. Microsoft bietet auch das hervorragende und leichte SQLExpress für die Entwicklung an, mit dem ich problemlos arbeiten konnte und das sich gut in Visual Studio integrieren lässt.

4
Andy Monis

ANMERKUNG: Ich kann nichts über Oracle sagen, daher antworte ich nur für SQL Server.

Nun, natürlich kleine Unterschiede in der Datenbank-Engine, wie MERGE-Anweisung, BULK INSERT, GROUPING SETs usw.

Aber ich denke, der größte Teil sind Dinge wie Integration Services, Analysis Services und Reporting Services. Das sind wichtige Technologien, die meiner Meinung nach das Geld, das sie kosten, absolut wert sind.

4

Inspiriert von der Antwort von ThinkJet ist ein weiterer Faktor, der ins Spiel kommt: "Inwieweit sind wir bereit, auf die Unabhängigkeit von Datenbanken zu verzichten, um eine schnellere und kostengünstigere Entwicklung leistungsfähigerer Anwendungen zu ermöglichen?" Wenn der Schwerpunkt des Unternehmens darauf liegt, dass der gesamte Code zwischen Datenbanken portierbar sein muss, macht es wenig Sinn, etwas anderes als das einfachste RDBMS zu verwenden, und die Verbesserungen und Vorteile, die Oracle und Microsoft bereitgestellt haben, zählen nicht.

Es dauert sehr wenig, um die echte Datenbankunabhängigkeit zu durchbrechen, und meine Philosophie lautet, dass Sie sich voll und ganz dafür einsetzen sollten, alle Funktionen zu nutzen, für die Sie bezahlt haben - SQL-Verbesserungen, PL/SQL usw.

Andere können natürlich abweichen.

3
David Aldridge

Ich denke, die Frage hat die implizite Annahme, dass es Entwicklungsfunktionen sind, die es SQL Server/Oracle ermöglichen, Gebühren zu erheben. Ich vermute, dass es eher um die Umsetzung/Betreuung geht.

Hot Backup ist eine wichtige Funktion, für die es sich lohnt zu zahlen, zumindest für die meisten Installationen.

Ein großer Mehrwert für Oracle ist RAC - mehrere Server, die dieselben Daten (dh dieselben Datenträger) bearbeiten, ohne dass eine fehlerhafte Replikation erforderlich ist. Für den Entwickler ist dies (im Allgemeinen) nicht ersichtlich.

3
Gary Myers

Einige Oracle-Funktionen, die ich wirklich mag, sind

  • Echte Anwendungscluster, eine sehr leistungsfähige Methode zum Erstellen von Datenbankclustern
  • Schnell aktualisierbare materialisierte Ansichten, eine sehr effiziente Methode zum Speichern und Aktualisieren von Abfrageergebnissen
  • Analysefunktionen (auch Fensterfunktionen genannt), mit denen Funktionen für eine Teilmenge der Abfrage auf effiziente Weise gruppiert werden können. Dies kann in den meisten Fällen Selbstverknüpfungen vermeiden.

Soweit ich weiß, ist keines davon in MySQL verfügbar. Und es gibt viele weitere nützliche Funktionen, insbesondere in der Enterprise Edition und ihren Optionen.

1
Karl Bartel