Heim > Datenbank > MySQL-Tutorial > Gibt es einen Unterschied zwischen MySQL und Oracle?

Gibt es einen Unterschied zwischen MySQL und Oracle?

青灯夜游
Freigeben: 2021-12-01 15:32:21
Original
4630 Leute haben es durchsucht

Es gibt folgende Unterschiede: 1. MySQL übermittelt Transaktionen automatisch, Oracle übermittelt sie manuell. 2. Auf der Isolationsebene ist MySQL „read commited“ und Oracle ist „repeatable read“; 3. MySQL ist leichtgewichtig und kostenlos ist robust und kostenpflichtig.

Gibt es einen Unterschied zwischen MySQL und Oracle?

Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.

Der Unterschied zwischen MySQL und Oracle

(1) Übermittlung von Transaktionen

MySQL verwendet standardmäßig die automatische Übermittlung, während Oracle standardmäßig nicht automatisch übermittelt und vom Benutzer eine manuelle Übermittlung verlangt Der Commit;-Befehl oder die Schaltfläche „Commit“ (2) Paging-Abfrage: MySQL schreibt direkt „select... from ... where... limit x, y“ in die SQL-Anweisung erreicht werden

Und Oracle muss Pseudospalten ROWNUM und verschachtelte Abfragen verwenden

(3) Transaktionsisolationsstufe

MySQL ist die Isolationsstufe für festgeschriebene Lesevorgänge, während Oracle die Isolationsstufe für wiederholbare Lesevorgänge ist und beide unterstützen Die serialisierbare Serialisierungs-Transaktionsisolationsstufe kann die höchste Lesekonsistenz erreichen. Erst nachdem jede Sitzung übermittelt wurde, können andere Sitzungen die übermittelten Änderungen sehen. Oracle erreicht Lesekonsistenz durch die Erstellung von Datenblöcken mit mehreren Versionen im Undo-Tabellenbereich. Wenn sich der entsprechende Datenblock bei jeder Sitzung ändert, erstellt Oracle die alte Abfrageversion für diese Sitzung im Undo-Tabellenbereich MySQL verfügt nicht über einen ähnlichen Mechanismus wie Oracle zum Erstellen von Datenblöcken mit mehreren Versionen und unterstützt nur die Isolationsstufe des festgeschriebenen Lesens. Wenn eine Sitzung Daten liest, können andere Sitzungen die Daten nicht ändern, aber sie können Daten am Ende der Tabelle einfügen. Wenn eine Sitzung Daten aktualisiert, muss eine exklusive Sperre hinzugefügt werden. Andere Sitzungen können nicht auf die Daten zugreifen Kann Transaktionen vollständig unterstützen

(5) Datenpersistenz speichern

MySQL verliert Daten, wenn die Datenbank aktualisiert oder neu gestartet wird. Oracle schreibt die übermittelte SQL-Operationszeile in die Online-Protokolldatei und speichert sie auf der Festplatte Jederzeit wiederherstellbar

(6) Parallelität

MySQL verwendet hauptsächlich Sperren auf Tabellenebene und die Granularität der Ressourcensperre ist sehr groß. Wenn eine Sitzung eine Tabelle zu lange sperrt, können andere Sitzungen diese nicht aktualisieren Daten in der Tabelle.

Obwohl InnoDB-Engine-Tabellen Sperren auf Zeilenebene verwenden können, basiert dieser Sperrmechanismus auf Zeilenebene auf dem Index der Tabelle. Wenn die Tabelle keinen Index hat oder die SQL-Anweisung keinen Index verwendet, werden Sperren auf Tabellenebene vorgenommen werden immer noch verwendet. Oracle verwendet Sperren auf Zeilenebene, und die Granularität der Ressourcensperre ist viel geringer. Es sperrt nur die von SQL benötigten Ressourcen, und die Sperre bezieht sich auf die Datenzeilen in der Datenbank und ist nicht auf Indizes angewiesen. Daher ist die Unterstützung von Oracle für Parallelität viel besser.

(7) Logische Sicherung

Die Daten müssen während der logischen Sicherung von MySQL gesperrt werden, um sicherzustellen, dass die gesicherten Daten konsistent sind, was sich auf die normale Verwendung von DML im Unternehmen auswirkt. Oracle sperrt die Daten während der logischen Sicherung nicht. und die gesicherten Daten sind konsistent

(8) Replikation

MySQL: Die Konfiguration des Replikationsservers ist einfach, aber wenn ein Problem mit der Hauptdatenbank auftritt, kann die Clusterdatenbank eine bestimmte Datenmenge verlieren. Und Sie müssen die Plex-Bibliothek manuell auf die Hauptbibliothek umstellen.

Oracle: Es gibt sowohl die herkömmliche Push- oder Pull-Datenreplikation als auch den Dual-Machine- oder Multi-Machine-Disaster-Recovery-Mechanismus von Dataguard. Wenn ein Problem mit der Hauptdatenbank auftritt, kann die Standby-Datenbank automatisch auf die Hauptdatenbank umgeschaltet werden Das Konfigurationsmanagement ist komplizierter.

(9) Leistungsdiagnose

MySQL verfügt über wenige Diagnose- und Optimierungsmethoden, hauptsächlich langsame Abfrageprotokolle.

Oracle verfügt über verschiedene ausgereifte Tools zur Leistungsdiagnose und -optimierung, mit denen viele automatische Analyse- und Diagnosefunktionen realisiert werden können. Zum Beispiel awr, addm, sqltrace, tkproof usw.

(10) Berechtigungen und Sicherheit

MySQL-Benutzer sind mit dem Host verbunden, was sich bedeutungslos anfühlt. Außerdem ist es wahrscheinlicher, dass der Host und die IP gefälscht werden und ausgenutzt.

Die Berechtigungs- und Sicherheitskonzepte von Oracle sind relativ traditionell und durchaus zufriedenstellend.

(11) Partitionierte Tabelle und partitionierter Index

Die partitionierte Tabelle von MySQL ist noch nicht ausgereift und stabil.

Die Partitionstabellen- und Partitionsindexfunktionen von Oracle sind sehr ausgereift und können die Benutzererfahrung beim Zugriff auf die Datenbank verbessern.

(12) Verwaltungstools

Es gibt nur wenige Verwaltungstools für MySQL. Die Installation von Verwaltungstools unter Linux erfordert manchmal die Installation zusätzlicher Pakete (phpmyadmin usw.), was kompliziert ist.

Oracle verfügt über eine Vielzahl ausgereifter Befehlszeilen, grafischer Oberflächen, Webverwaltungstools und viele Verwaltungstools von Drittanbietern, wodurch die Verwaltung äußerst bequem und effizient ist.

(13) Der wichtigste Unterschied

MySQL ist eine leichtgewichtige Datenbank und kostenlos, ohne Dienst zur Datenwiederherstellung.

Oracle ist eine Hochleistungsdatenbank, es gibt eine Gebühr, das Unternehmen Oracle bietet alle Dienste für Oracle-Datenbanken an.

【Verwandte Empfehlungen: MySQL-Video-Tutorial

Das obige ist der detaillierte Inhalt vonGibt es einen Unterschied zwischen MySQL und Oracle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage