Heim  >  Artikel  >  Datenbank  >  Einführung in einige Unterschiede zwischen MySQL und Oracle

Einführung in einige Unterschiede zwischen MySQL und Oracle

王林
王林Original
2019-08-15 13:45:392009Durchsuche

Vorwort: In der täglichen Arbeit von Programmierern ist es unvermeidlich, sich mit Datenbanken zu befassen. Es gibt viele Datenbanken, die wir kennen, wie zum Beispiel: MySQL, Oracle, SQL Server usw.

Heute werde ich sie vorstellen Sie Einige einfache Unterschiede zwischen MySQL und Oracle. (Empfehlung: MySQL-Video-Tutorial)

1. Transaktionsübermittlung

MySQL schreibt Transaktionen standardmäßig fest, und das muss auch so sein be <code><strong>START TRANSACTION</strong>START TRANSACTION
markiert den Beginn einer Transaktion, andernfalls können die Daten nicht per Rollback zurückgesetzt werden.

<strong>commit</strong>Oracle erfordert, dass Benutzer den Befehl <strong>commit</strong>commit
schreiben oder auf den Befehl

commit

-Schaltfläche.

2. Paging-Abfrage

MySQL kann die folgende SQL-Sprache direkt zum Abfragen verwenden, und Paging kann mit Einschränkungen implementiert werden. Unter den beiden Parametern nach

select ... from ... where ... limit x,y
<strong>ROWNUM</strong>limit stellt x den Startindex dar, beginnend bei 0, und y stellt die Anzahl der zurückgegebenen Datensätze dar. <strong>ROWNUM</strong><strong>ROWNUM</strong>Aber Oracle muss Pseudospalten

ROWNUM

und verschachtelte Abfragen verwenden. <strong>ROWNUM</strong> stellt die Zeilennummer eines Datensatzes dar. Es ist zu beachten, dass diese nach dem Erfassen einer Zeile zugewiesen wird. Daher ist es nicht möglich, Paging-Daten durch Angabe des Intervalls <strong>ROWNUM</strong> in einer Abfragesprache der ersten Ebene zu erhalten, und es ist eine weitere Abfrage erforderlich.

3

<strong>read </strong>, commitedTransaktionsisolationsstufe<strong>repeatable</strong>
Die Standardisolationsstufe von MySQL ist

read

, Oracles Standardisolationsstufe ist <p>repeatable<code>innodb

. Gleichzeitig unterstützen beide die Isolationsstufe für serialisierbare serialisierte Transaktionen, um die höchste Lesekonsistenz zu erreichen.

4. Unterstützung für Transaktionen

MySQL kann nur Transaktionen mit der Zeilenebenensperre der
-Speicher-Engine unterstützen, Oracle unterstützt jedoch nicht Transaktionen.

5. Datenpersistenz speichern

sessionMySQL verliert Daten, wenn die Datenbank aktualisiert oder neu gestartet wird. Die Online-Protokolldatei wird von Oracle geschrieben wird auf der Festplatte gespeichert und kann jederzeit wiederhergestellt werden.

InnoDB6. Parallelität

MySQL verwendet hauptsächlich Sperren auf Tabellenebene, und die Granularität der Ressourcensperre ist sehr groß lange Zeit Wenn es zu lang ist, können andere

die Daten in dieser Tabelle nicht ändern.

Obwohl

Engine-Tabellen Sperren auf Zeilenebene verwenden können, hängt dieser Sperrmechanismus auf Zeilenebene vom Index der Tabelle ab, wenn die Tabelle keinen Index hat oder die SQL-Anweisung einen hat Wenn kein Index vorhanden ist, wird für die Tabelle weiterhin eine Level-Sperre verwendet.

dml
Oracle verwendet eine Sperre auf Zeilenebene, die Ressourcen mit einer viel geringeren Granularität sperrt. Es sperrt nur die erforderlichen 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

MySQL muss die Daten während der logischen Sicherung sperren, um sicherzustellen, dass die gesicherten Daten konsistent sind, was sich auf die normale Geschäftsnutzung auswirkt
, Oracle-Daten werden während der logischen Sicherung nicht gesperrt und die gesicherten Daten sind konsistent.

<strong>dataguard</strong>

8. Replikation

Die Konfiguration des MySQL-Replikationsservers ist sehr einfach, aber wenn ein Problem mit der Hauptdatenbank auftritt, kann die Clusterdatenbank bestimmte Daten verlieren und muss manuell aus der Cong-Bibliothek umgeschaltet werden.


Oracle verfügt sowohl über die herkömmliche Push- oder Pull-Datenreplikation als auch über den Notfallwiederherstellungsmechanismus von

dataguard

für zwei oder mehrere Maschinen, sofern vorhanden Problem mit der Hauptdatenbank: Sie können die Standby-Datenbank automatisch auf die Hauptdatenbank umstellen, die Datenverwaltung ist jedoch komplizierter.

9. Leistungsbeurteilung

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

Oracle verfügt über eine Vielzahl ausgereifter Leistungsdiagnose- und Optimierungstools, mit denen viele automatische Analysen durchgeführt werden können.

10. Berechtigungen und Sicherheit

MySQL-Benutzer sind mit dem Host verknüpft und der Host und die IP können leicht gefälscht werden.


Oracles Berechtigungs- und Sicherheitskonzepte sind relativ traditionell.

11. Partitionierte Tabelle und partitionierter Index

Die partitionierte Tabelle von MySQL ist nicht ausgereift und stabil.

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

12. Verwaltungstools

MySQL verfügt über weniger Verwaltungstools. Gleichzeitig erfordert die Installation von Verwaltungstools unter Linux manchmal die Installation zusätzlicher Pakete komplizierter.


Oracle verfügt über viele ausgereifte Befehlszeilen, grafische Oberflächen, Webverwaltungstools und viele Verwaltungstools von Drittanbietern, die relativ effizient und praktisch sind. Abschließend: MySQL ist eine leichtgewichtige Datenbank und kostenlos, ohne Dienst zur Datenwiederherstellung. Oracle ist eine Gewichtsdatenbank, es gibt eine Gebühr, das Unternehmen Oracle bietet alle Dienste für Oracle-Datenbanken an.

Das obige ist der detaillierte Inhalt vonEinführung in einige Unterschiede zwischen MySQL und Oracle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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