MySQL vs. SQL Server vs. Oracle [geschlossen]


78

Ich habe immer nur MySQL und kein anderes Datenbanksystem verwendet.

Bei einem heutigen Unternehmenstreffen wurde eine Frage gestellt, und es war mir peinlich, dass ich nicht wusste: Welche erderschütternden Funktionen bieten MS oder Oracle einem Entwickler, die MySQL fehlen und die es MS und Oracle ermöglichen, Gebühren für ihre Systeme zu erheben?



4
Die Frage ist so formuliert, dass MySQL für die Verwendung keine Gebühren erheben kann. Es gibt nichts, was es MS und Oracle erlaubt , Gebühren zu erheben, sie tun es einfach. Und MySQL ist einfach anders - Open Source. Wenn ich wollte, könnte ich in einer halben Stunde ein halbgebackenes Skript zum Speichern und Wiederherstellen schreiben und es in Rechnung stellen. Ich brauche nichts, um das zu tun.
Luka Ramishvili

11
Ok, aber um seine Frage neu zu formulieren; Warum könnte eine kluge Person in Betracht ziehen, für RDBMS X zu bezahlen, wenn sie RDBMS Y kostenlos auswählen könnte?
Karl

2
Ich denke nicht, dass diese Frage richtig ist. MySQL ist für den geschäftlichen Gebrauch nicht kostenlos (laut Antworten hier), während MS SQL Server über eine Version verfügt. Das MS-Angebot ist nicht so restriktiv und ermöglicht eine 10-GB-Datenbank mit den meisten aktivierten Funktionen. Die Frage könnte umgekehrt werden, warum für MySQL bezahlen, wenn SQL Server kostenlos ist und mehr Funktionen bietet. Vielleicht ist es meine Installation, aber ich finde MySQL fehlerhaft und langsam.
MikeKulls

3
Diese Frage scheint nicht zum Thema zu gehören, da es um den Vergleich verschiedener DBs geht
Noel

Antworten:


36

Ich denke, andere Kommentatoren sind zu Recht in der Lage, alle zusätzlichen Nicht-Kern-RDBMS-Fähigkeiten hervorzuheben, die mit den kommerziellen Lösungen gebündelt sind.

Hier finden Sie eine Matrix mit Oracle-Editionen und -Funktionen, die es wert sind, durchsucht zu werden, um die "zusätzlichen" Funktionen zu verstehen, insbesondere im Zusammenhang mit den Kosten für die Entwicklung und Unterstützung Ihrer eigenen Version (falls dies überhaupt möglich ist). auf einem Produkt wie MySQL: http://www.oracle.com/us/products/database/product-editions-066501.html

Wenn Sie beispielsweise eine Anforderung hatten, die besagte: "Benutzer müssen in der Lage sein, frühere Versionen von Daten wiederherzustellen, die sie bis zu einer Woche nach dem Festschreiben der Änderungen gelöscht / aktualisiert haben", bedeutet dies meines Erachtens einen gewissen Entwicklungsaufwand wäre viel höher auf einem System, das keine eingebaute Funktion wie Orakels Flashback-Abfrage hatte.


+1, gute Zusammenfassung der Oracle-Funktionen.
DCookie

Gute Infos zu den Oracle-Funktionen
hminaya

23

Die reinen RDBMS-Schichten von Oracle und MSSQL bieten hauptsächlich eine ausgereifter 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 auf den RDBMS-Schichten von MSSQL (Reporting Services, Analysis Services) und Oracle (Data Warehousing, RAC) eine Menge integrierter Tools und Services gibt, über die MySQL (noch) nicht verfügt.


12

MySQL ist nicht kostenlos!

Es wird allgemein als kostenlos verstanden, aber wenn Sie Softwarepakete verkaufen oder vertreiben, die MySQL enthalten, unterliegt dies ziemlich 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 vom Rest Ihrer Anwendung zu trennen und Ihren Kunden zu zwingen, MySQL selbst herunterzuladen und zu installieren, sind Sie wahrscheinlich in Ordnung.

Andernfalls kostet die "Standard" -Version 2.000 US-Dollar pro Jahr, was in etwa den Kosten für die Lizenzierung von SQL Server entspricht.

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

  • Eine reichhaltige und ausdrucksstarke prozedurale Sprache (T-SQL)
  • Ein besseres Abfrageoptimierungsprogramm und eine bessere Leistung in schreibintensiven Umgebungen
  • Eine Reihe von zusätzlichen Tools und Funktionen, einschließlich einer Programmierumgebung, eines ETL-Tools (SSIS), einer Dimensionsmodellierung (SSAS), einer Berichtsumgebung (SSRS) und eines einigermaßen ausgefeilten Job Schedulers.
  • Interaktives Debuggen von gespeicherten Prozeduren und UDFs.
  • Ein relativ benutzerfreundliches fensterbasiertes Verwaltungstool, mit dem Sie die meisten Verwaltungsaufgaben "klick" erledigen können.

Viele Menschen sind ideologisch dagegen, 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äftlichen Gebrauch, und das scheint nicht allgemein verstanden zu werden.

Informationen zur Lizenzierungsrichtlinie von MySQL finden Sie auf der Website von MySQL: http://www.mysql.com/about/legal/licensing/index.html


Ich stimme zu - MySql ist nicht kostenlos (es gibt kein kostenloses Mittagessen). Ich denke jedoch, dass viele Microsoft-Produkte nicht so gut sind (außer Visual Studio). Sybase scheint eine sehr gute Datenbank zu sein IMHO
Ed Heal

3
Ha, ich war tatsächlich einer dieser Leute. Ich dachte wirklich, MySQL sei kostenlos, völlig kostenlos, egal was passiert. Nur eine kurze Frage, haben Sie einige Statistiken / Links, unter denen ich den "besseren Abfrageoptimierer und die bessere Leistung in schreibintensiven Umgebungen" sehen kann.
John Crawford

34
Falsch. Die Community-Version von MySQL ist unter der GNU GPL v2-Lizenz lizenziert. Dies bedeutet, dass Sie die Software für jeden Zweck kostenlos verwenden können. (Wenn Sie die Software ÄNDERN UND WEITERVERTEILEN möchten, muss das geänderte Produkt unter derselben Open Source-Lizenz für GPL v2 angeboten werden. Die bloße VERWENDUNG und sogar ÄNDERUNG (solange Sie das geänderte Produkt nicht weitergeben) ist kostenlos für jeden Zweck ohne Bedingungen.)
Luca

Das ist nicht ganz richtig. Bitte lesen
Curt

9
Curt, (1) wir sprechen nicht davon, MySQL in ein anderes Programm zu integrieren, sondern es als separate Software (in einer Client-Server-Architektur) zu verwenden; in Ihrer FAQ: "Wenn die beiden Programme gut getrennt bleiben [...], können Sie sie als zwei separate Programme behandeln" (2), auch wenn Sie MySQL wirklich in eine proprietäre Software integrieren (dh Sie verwenden es als Bibliothek) Sie müssen Ihre proprietäre Software unter GPL nicht erneut lizenzieren, solange Sie sie nicht weitergeben. In Ihren FAQ: "Die GPL sagt, dass jede erweiterte Version des Programms unter der GPL veröffentlicht werden muss, wenn es überhaupt veröffentlicht wird"
Luca

9

Einige andere Dinge, die Orakel über MySQL hat.

  • Warteschlangen
  • interne Jobplanung
  • ausgereifte Sprache für gespeicherte Prozeduren
  • patitionierte Tische
  • feinkörnige Zugangskontrolle und Prüfung
  • Starke Wiederherstellungsfunktionen (z. B. Flashback, RMAN, Dataguard)
  • entfernte Datenbankverbindungen
  • Bewerbung Express

5
MySQL unterstützt partitionierte Tabellen (explizit) seit 5.1. dev.mysql.com/doc/refman/5.1/de/partitioning-overview.html
Sharique

8

Bis ich RDBSes von anderen Anbietern verwaltete, wiederholte Oracle oft: "Leser blockieren keine Autoren, Autoren blockieren keine Leser" bedeutete mir wenig. Ich wusste wirklich nicht viel über den Umgang mit 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.

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


Dieselbe grundlegende Codebasis in einer 1-m-Zeilentabelle mit Hunderten von Lese- / Aktualisierungsvorgängen pro Sekunde in derselben Reihe von Zeilen lässt Oracle glänzen und (zu diesem Zeitpunkt) lässt SQL Server Spin Lock in Vergessenheit geraten. Ja, die Dinge haben sich geändert, aber der Punkt ist, dass das Datenbankprodukt, so sehr ich es auch für das Oracle-Unternehmen nicht mag, erstklassig ist.
Jé Queue

SQL Server Snapshot Isolation löst dieses sehr reale Problem mit Microsoft SQL Server - hinzugefügt in SQL Server 2008
NTDLS

5

Es gibt zu viele Funktionen, um sie aufzulisten. Siehe Wikipedia-Referenz in der Nachricht von nullptr. Aber ich nehme an, diese wirklich gestellte Frage bei einem Meeting lautet: "Welche erderschütternden Funktionen bieten MS oder Oracle einem Entwickler, dass MySQL hinterherhinkt, wodurch MS und Oracle Gebühren für ihre Systeme erheben können und welche von unserem Unternehmen effektiv genutzt werden können ?"

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



4

HINWEIS: Ich kann nichts über Oracle sagen, daher werde ich nur für SQL Server antworten.

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 wert sind, das sie kosten.


Einige Leute sind aufgrund von Kompatibilitätsbeschränkungen und den Kopfschmerzen bei der Implementierung von Oracle oder MySQL in ihren aktuellen Systemen gezwungen, sich für Microsoft SQL Server zu entscheiden
JsonStatham,

4

MySQL bot nicht die reichhaltigere Programmierumgebung, die Oracle und MSSQL anboten, insbesondere in frühen Inkarnationen, in denen es 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 darunter liegende Datenbank-Engine weniger wichtig und theoretisch ist die Anwendung transportabel. Aus Managementsicht bietet MSSQL eine Reihe von Vorteilen (von denen viele bereits aufgeführt sind), die den Besitz der Datenbank erheblich vereinfachen. Microsoft stellt auch den hervorragenden und leichten SQLExpress für die Entwicklung zur Verfügung, mit dem ich leicht arbeiten konnte und der sich gut in Visual Studio integrieren lässt.


2
Der Schwerpunkt liegt auf "theoretisch", wenn es um Transportierbarkeit geht, denke ich;) Es scheint der Fall zu sein, dass das Herunterfahren des Codes auf den kleinsten gemeinsamen Nenner, der Transportierbarkeit ermöglicht, tatsächlich den Wunsch nach Transport fördert, da das Vermeiden von Herstellerverbesserungen normalerweise Orte die Datenbank im Bullseye für Leistungsprobleme.
David Aldridge

3

Inspiriert von der Antwort von ThinkJet denke ich, dass ein weiterer Faktor, der ins Spiel kommt, lautet: "Inwieweit sind wir bereit, auf die Unabhängigkeit der Datenbank 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 für nichts.

Es braucht sehr wenig, um die wahre Unabhängigkeit der Datenbank zu brechen, und meine Philosophie ist, dass Sie sich voll und ganz darauf konzentrieren sollten, alle Funktionen zu nutzen, für die Sie bezahlt haben - SQL-Verbesserungen, PL / SQL usw.

Andere können natürlich abweichen.


3

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 Implementierung / Unterstützung geht.

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

Für Oracle ist RAC ein großer Mehrwert - mehrere Server treffen auf dieselben Daten (dh dieselben Festplatten), ohne dass eine unordentliche Replikation erforderlich ist. Es ist (im Allgemeinen) für den Entwickler nicht ersichtlich.


Ich habe es irgendwie verpasst. Danke :)
Kshitij Saxena -KJ-

1

Einige Oracle-Funktionen, die ich wirklich mag, sind

  • Echte Anwendungscluster, eine recht leistungsstarke 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 auf effiziente Weise zu einer Teilmenge der Abfrage gruppiert werden können. Dies kann in den meisten Fällen Selbstverbindungen vermeiden.

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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.