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
schreiben oder auf den Befehl <strong>commit</strong>
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 nachselect ... 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.
<strong>read </strong>
, commited
Transaktionsisolationsstufe<strong>repeatable</strong>
Die Standardisolationsstufe von MySQL ist
, 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
session
MySQL 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.
InnoDB
6. 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>
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
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.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.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!