Unterschiede: 1. MySQL ist in der Regel aus Benutzersicht; pg-Datenbanken sind in der Regel aus theoretischer Sicht. 2. MySQL überlässt im Allgemeinen die Überprüfung der Datenlegalität den Kunden; die pg-Datenbank ist in Bezug auf die Legalität strenger. 3. In Bezug auf die SQL-Standardimplementierung ist die pg-Datenbank vollständiger als MySQL und ihre Funktionsimplementierung ist strenger.
MySQL
MySQL ist relativ jung und erschien erstmals 1994. Sie behauptet, die beliebteste Open-Source-Datenbank zu sein. MySQL ist das M in LAMP (ein Softwarepaket für die Webentwicklung, einschließlich Linux, Apache und Perl/PHP/Python). Die meisten auf dem LAMP-Stack aufgebauten Anwendungen verwenden MySQL, darunter bekannte Anwendungen wie WordPress, Drupal, Zend und phpBB.
MySQL war von Anfang an als schnelles Webserver-Backend konzipiert, das die schnelle Index Sequential Access Method (ISAM) nutzt und ACID nicht unterstützt. Nach einer schnellen frühen Entwicklung begann MySQL, mehr Speicher-Engines zu unterstützen und implementierte ACID über die InnoDB-Engine. MySQL unterstützt auch andere Speicher-Engines, bietet temporäre Tabellenfunktionen (unter Verwendung der MEMORY-Speicher-Engine) und implementiert Hochgeschwindigkeits-Lesedatenbanken über die MyISAM-Engine. Darüber hinaus gibt es andere Kernspeicher-Engines und Engines von Drittanbietern.
MySQL verfügt über eine sehr umfangreiche Dokumentation, darunter viele hochwertige kostenlose Referenzhandbücher, Bücher und Online-Dokumente sowie Schulungen und Support von Oracle und Drittanbietern.
MySQL hat in den letzten Jahren Eigentümerwechsel und einige ziemlich dramatische Ereignisse erlebt. Es wurde ursprünglich von MySQL AB entwickelt und dann 2008 für 1 Milliarde US-Dollar an Sun verkauft. Sun wurde 2010 von Oracle übernommen. Oracle unterstützt mehrere Versionen von MySQL: Standard, Enterprise, Classic, Cluster, Embedded und Community. Einige davon können kostenlos heruntergeladen werden, während andere kostenpflichtig sind. Sein Kerncode basiert auf der GPL-Lizenz. Für Entwickler und Hersteller, die die GPL-Lizenz nicht nutzen möchten, stehen kommerzielle Lizenzen zur Verfügung.
Jetzt stehen viel mehr Datenbanken zur Auswahl, die auf dem ursprünglichen MySQL-Code basieren, da mehrere wichtige MySQL-Entwickler MySQL-Forks veröffentlicht haben. Einer der ursprünglichen MySQL-Entwickler, Michael „Monty“ Widenius, schien den Verkauf von MySQL an Sun zu bereuen, also entwickelte er seinen eigenen MySQL-Fork, MariaDB, der kostenlos ist und unter der GPL lizenziert ist. Drizzle, ein Fork des bekannten MySQL-Entwicklers Brian Aker, wurde umfassend neu geschrieben und insbesondere für Multi-CPU-, Cloud- und Netzwerkanwendungen sowie hohe Parallelität optimiert.
PostgreSQL
PostgreSQL bezeichnet sich selbst als die fortschrittlichste Open-Source-Datenbank der Welt. Einige Fans von PostgreSQL sagen, es sei mit Oracle vergleichbar, allerdings ohne den hohen Preis und den arroganten Kundenservice. Sie hat eine lange Geschichte und wurde ursprünglich 1985 an der University of California in Berkeley als Nachfolger der Ingres-Datenbank entwickelt.
PostgreSQL ist ein vollständig von der Community betriebenes Open-Source-Projekt, das von mehr als 1.000 Mitwirkenden auf der ganzen Welt gepflegt wird. Es bietet eine einzige voll funktionsfähige Version, im Gegensatz zu MySQL, das mehrere verschiedene Community-Editionen, kommerzielle Editionen und Enterprise-Editionen bereitstellt. PostgreSQL basiert auf der kostenlosen BSD/MIT-Lizenz und Organisationen können den Code verwenden, kopieren, ändern und weiterverbreiten, sofern sie einen Urheberrechtshinweis angeben.
Zuverlässigkeit hat für PostgreSQL höchste Priorität. Es ist bekannt für seine solide Qualität und solide Technik und unterstützt geschäftskritische Anwendungen mit hoher Transaktionsfrequenz. Die Dokumentation von PostgreSQL ist sehr gut, mit einer großen Anzahl kostenloser Online-Handbücher und archivierten Referenzhandbüchern für ältere Versionen. Der Community-Support von PostgreSQL ist ausgezeichnet, ebenso wie der kommerzielle Support von unabhängigen Anbietern.
Datenkonsistenz und -integrität sind ebenfalls wichtige Funktionen von PostgreSQL. PostgreSQL unterstützt ACID-Funktionen vollständig, bietet starke Sicherheitsgarantien für den Datenbankzugriff und nutzt Unternehmenssicherheitstools wie Kerberos und OpenSSL in vollem Umfang. Sie können Ihre eigenen Prüfungen definieren, um die Datenqualität basierend auf Ihren eigenen Geschäftsregeln sicherzustellen. Unter den vielen Verwaltungsfunktionen ist die Point-in-Time-Recovery (PITR) eine großartige Funktion. Hierbei handelt es sich um eine flexible Hochverfügbarkeitsfunktion, die die Möglichkeit bietet, Hot-Backups und Snapshots sowie Wiederherstellungen für die Wiederherstellung nach Fehlern zu erstellen. Aber das ist nicht alles von PostgreSQL. Das Projekt bietet auch mehrere Methoden zur Verwaltung von PostgreSQL, um Hochverfügbarkeit, Lastausgleich, Replikation usw. zu erreichen, sodass Sie die Funktionen verwenden können, die Ihren spezifischen Anforderungen entsprechen.
Plattform
Sowohl MySQL als auch PostgreSQL erscheinen auf einigen stark frequentierten Websites:
MySQL: Slashdot, Twitter, Facebook und Wikipedia
PostgreSQL: Yahoo verwendet eine modifizierte PostgreSQL-Datenbank, um tägliche Daten von Hunderten Millionen zu verarbeiten von Events, plus Reddit und Disqus
MySQL und PostgreSQL können auf mehreren Betriebssystemen wie Linux, Unix, Mac OS X und Windows ausgeführt werden. Sie sind alle Open Source und kostenlos, sodass die einzigen Kosten beim Testen Ihre Zeit und Hardware sind. Sie sind flexibel und skalierbar und können sowohl auf kleinen Systemen als auch auf großen verteilten Systemen eingesetzt werden. MySQL geht in einem Bereich weiter als PostgreSQL, das heißt, seine Tentakel reichen bis zum eingebetteten Bereich, was durch libmysqld erreicht wird. PostgreSQL unterstützt keine eingebetteten Anwendungen und folgt weiterhin der traditionellen Client/Server-Architektur.
MySQL gilt normalerweise als schnelles Datenbank-Backend für Websites und Anwendungen, das schnelles Lesen und eine große Anzahl von Abfragevorgängen ermöglicht, ist jedoch im Hinblick auf komplexe Funktionen und Datenintegritätsprüfung nicht zufriedenstellend.
PostgreSQL ist eine seriöse, voll funktionsfähige Datenbank für transaktionale Unternehmensanwendungen, die starke ACID-Funktionen und viele Datenintegritätsprüfungen unterstützt. Beide sind bei bestimmten Aufgaben sehr schnell und das Verhalten verschiedener MySQL-Speicher-Engines ist sehr unterschiedlich. Die MyISAM-Engine ist die schnellste, da sie nur wenige Datenintegritätsprüfungen durchführt. Sie eignet sich für Websites mit vielen Back-End-Lesevorgängen, ist jedoch eine Katastrophe für Lese-/Schreibdatenbanken, die vertrauliche Daten enthalten, da die MyISAM-Tabelle dies möglicherweise tut beschädigt werden. MySQL bietet Tools zum Reparieren von MySQL-Tabellen, aber für sensible Daten ist InnoDB, das ACID-Funktionen unterstützt, die bessere Wahl.
Im Gegensatz dazu ist PostgreSQL eine vollständig integrierte Datenbank mit einer einzigen Speicher-Engine. Sie können die Leistung verbessern, indem Sie Parameter in der Datei postgresql.conf anpassen sowie Abfragen und Transaktionen anpassen. Die PostgreSQL-Dokumentation bietet eine sehr detaillierte Einführung in die Leistungsoptimierung.
Sowohl MySQL als auch PostgreSQL sind hochgradig konfigurierbar und können für verschiedene Aufgaben optimiert werden. Sie alle unterstützen Erweiterungen, um zusätzliche Funktionalität hinzuzufügen.
Ein weit verbreitetes Missverständnis ist, dass MySQL einfacher zu erlernen ist als PostgreSQL. Relationale Datenbanksysteme sind sehr komplex und die Lernkurven dieser beiden Datenbanken sind tatsächlich ähnlich.
Standardkompatibilität
PostgreSQL strebt SQL-Kompatibilität an (der aktuelle Standard ist ANSI-SQL:2008). MySQL ist mit den meisten SQL-Anweisungen kompatibel, verfügt aber auch über eigene Erweiterungen, die NoSQL-Funktionen unterstützen können, die im Referenzhandbuch vorgestellt werden. Jeder Ansatz hat Vor- und Nachteile. Die Einhaltung von Standards macht Datenbankadministratoren, Datenbankentwickler und Anwendungsentwickler komfortabler, da sie nur einen Satz von Standards, Funktionen und Befehlen erlernen müssen. Dies spart Zeit, verbessert die Effizienz und ist nicht an einen bestimmten Anbieter gebunden.
Personen, die die Verwendung nicht standardmäßiger benutzerdefinierter Funktionen unterstützen, glauben, dass dadurch neue Funktionen schnell übernommen werden können, ohne auf den Abschluss des Standardisierungsprozesses warten zu müssen. Der ANSI/ISO-Standard entwickelt sich ständig weiter, daher ist auch die Standardkompatibilität ein wechselndes Ziel: Die bekannten relationalen Datenbanken Microsoft SQL Server, Oracle und IBM DB2 sind nur teilweise mit dem Standard kompatibel.
Der Unterschied zwischen MySQL und PostgreSQL (PG-Datenbank)
MySQL ist ein DBMS, das von Anwendungsentwicklern erstellt wurde, während PostgreSQL ein DBMS ist, das von Datenbankentwicklern erstellt wurde.
Mit anderen Worten: MySQL tendiert zur Benutzerperspektive und beantwortet die Frage „Welches Problem möchten Sie lösen?“, während PostgreSQL eher zur theoretischen Perspektive tendiert und die Frage „Wie soll die Datenbank das Problem lösen“ beantwortet.
MySQL überlässt die Überprüfung der Datenlegalität im Allgemeinen den Kunden; PostgreSQL ist in Bezug auf die Legalität strenger. Wenn Sie beispielsweise die Zeit „2012-02-30“ in MySQL einfügen, ist dies zwar erfolgreich, das Ergebnis lautet jedoch „0000-00-00“. PostgreSQL lässt das Einfügen dieses Werts nicht zu.
Im Allgemeinen gilt PostgreSQL als funktionsreich, während MySQL als schneller gilt. Diese Sichtweise ist jedoch im Wesentlichen eine Frage von MySQL 4.x / PostgreSQL 7.x. In der Version 9.x hat sich die Geschwindigkeit erheblich verbessert, und auch die MySQL-Funktionen haben zugenommen.
Architektonisch ist MySQL in zwei Schichten unterteilt: die obere SQL-Schicht und mehrere Speicher-Engines (wie InnoDB, MyISAM). PostgreSQL verfügt nur über eine Speicher-Engine, die beide Funktionen bereitstellt.
Beide dieser beiden Datenbanksysteme können entsprechend der Anwendungssituation optimiert und angepasst werden. Es ist schwierig, genau zu sagen, welches die bessere Leistung bietet. Der Fokus des MySQL-Projekts lag von Anfang an auf Geschwindigkeit, während der Fokus bei PostgreSQL von Anfang an auf Funktionen und Spezifikationen lag.
Vorteile von PostgreSQL gegenüber MySQL
1. Die Standardimplementierung von SQL ist besser als bei MySQL und die Funktionsimplementierung ist strenger.
2 Die funktionale Unterstützung gespeicherter Prozeduren ist besser als bei MySQL Cache-Ausführungsplanfunktionen;
3. Die Unterstützung für Tabellenverbindungen ist relativ vollständig, viele Indextypen werden unterstützt und die PG-Haupttabelle ist stark in einer Heap-Tabelle, und MySQL verwendet einen Index zum Organisieren der Tabelle, der größere Datenmengen als MySQL unterstützen kann.
5. Die primäre und sekundäre Replikation von PG ist eine physische Replikation. Im Vergleich zur Binlog-basierten logischen Replikation ist die Datenkonsistenz zuverlässiger, die Replikationsleistung ist höher und sie hat weniger Auswirkungen auf die Hostleistung.
6. Der Speicher-Engine-Plug-in-Mechanismus von MySQL weist das Problem auf, dass komplexe Sperrmechanismen die Parallelität beeinträchtigen, PG existiert jedoch nicht.
Vorteile von MySQL gegenüber PG:
1. Der von innodb basierende MVCC-Mechanismus ist dem XID-basierten MVCC-Mechanismus überlegen, bei dem die neuen und alten Daten von PG zusammen gespeichert werden. Neue und alte Daten werden zusammen gespeichert, und VACUUM muss regelmäßig ausgelöst werden, was zu redundantem E/A- und Datenbankobjektsperraufwand führt und dazu führt, dass die allgemeine Parallelitätsfähigkeit der Datenbank abnimmt. Wenn VACUUM nicht rechtzeitig bereinigt wird, kann es außerdem zu einer Datenerweiterung kommen.
2. MySQL verwendet indexorganisierte Tabellen. Diese Speichermethode eignet sich sehr gut für Abfrage- und Löschvorgänge, die auf dem Primärschlüsselabgleich basieren Das Design der Tabellenstruktur ist relativ einfach und die Implementierung von Systemtabellen, Operatoren und Datentypen ist sehr gut für einfache Abfrageoperationen geeignet ist vor allem besser als die Partitionsimplementierung von PG, die auf Vererbungstabellen basiert. Dies spiegelt sich in dem großen Unterschied in der Verarbeitungsleistung wider, wenn die Anzahl der Partitionen Zehntausende erreicht.
5. Der Speicher-Engine-Plug-in-Mechanismus von MySQL macht seine Anwendungsszenarien umfangreicher. Beispielsweise eignet sich innodb nicht nur für Transaktionsverarbeitungsszenarien, sondern auch für statische Datenabfrageszenarien.
Verwandte Empfehlungen: „
MySQL-Tutorial“
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen PG-Datenbank und MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!