[PostgreSQL] Von vorne beginnen: (1) Erste Einführung in PostgreSQL

Einführung in die PostgreSQL-Datenbank

PostgreSQL ist ein leistungsstarkes objektrelationales Open-Source-Datenbanksystem, das die SQL-Sprache nutzt und erweitert und sie mit vielen Funktionen kombiniert, um die komplexesten Daten-Workloads sicher zu speichern und zu skalieren. Die Ursprünge von PostgreSQL reichen bis ins Jahr 1986 als Teil des POSTGRES-Projekts an der University of California, Berkeley, zurück und es verfügt über mehr als 35 Jahre aktive Entwicklungserfahrung auf der Kernplattform.

PostgreSQL hat sich einen guten Ruf für seine bewährte Architektur, Zuverlässigkeit, Datenintegrität, seinen robusten Funktionsumfang, seine Skalierbarkeit und das Engagement der Open-Source-Community hinter der Software für die kontinuierliche Bereitstellung leistungsstarker und innovativer Lösungen erworben. PostgreSQL läuft auf allen gängigen Betriebssystemen, ist seit 2001 ACID-kompatibel und verfügt über leistungsstarke Add-ons wie den beliebten Geodatendatenbank-Extender PostGIS. Es überrascht nicht, dass PostgreSQL für viele Menschen und Organisationen zur bevorzugten relationalen Open-Source-Datenbank geworden ist.

Warum PostgreSQL verwenden?

PostgreSQL verfügt über viele Funktionen, die Entwicklern beim Erstellen von Anwendungen, Administratoren beim Schutz der Datenintegrität und dem Aufbau fehlertoleranter Umgebungen helfen und Ihnen bei der Verwaltung Ihrer Daten helfen sollen, unabhängig davon, wie groß oder klein Ihr Datensatz ist. PostgreSQL ist nicht nur kostenlos und Open Source, sondern auch hoch skalierbar. Sie können beispielsweise Ihre eigenen Datentypen definieren, benutzerdefinierte Funktionen erstellen und sogar Code in einer anderen Programmiersprache schreiben, ohne Ihre Datenbank neu kompilieren zu müssen!

PostgreSQL versucht, SQL-Standards einzuhalten, und diese Konsistenz steht nicht im Widerspruch zur traditionellen Funktionalität und führt nicht zu schlechten Architekturentscheidungen. Unterstützt viele der vom SQL-Standard geforderten Funktionen, obwohl die Syntax oder Funktionalität manchmal etwas anders ist. Es wird erwartet, dass im Laufe der Zeit eine weitere Konsistenz erreicht wird. Ab der im September 2023 veröffentlichten Version 16 ist PostgreSQL mit mindestens 170 der 179 obligatorischen Funktionen für die SQL:2023 Core-Konformität kompatibel. Zum jetzigen Zeitpunkt erfüllt keine relationale Datenbank diesen Standard vollständig.

Der Slogan von PostgreSQL lautet „die weltweit fortschrittlichste relationale Open-Source-Datenbank“.

PostgreSQL ist neben Oracle die leistungsstärkste relationale Datenbank auf dem Markt.

Die PostgreSQL-Community ist eine reine Community und wird nicht von kommerziellen Unternehmen kontrolliert. Viele Endbenutzer und Cloud-Anbieter sind bereit, Kerncode beizusteuern, sodass PostgreSQL schnelle Versionsiterationen und umfangreiche Anwendungs-Plug-Ins erhalten kann.

Warum sollten Cloud-Anbieter bei so vielen Endbenutzern Kerncode beisteuern?

  • Endbenutzer
    • Ich hoffe, dass die Community lange bestehen bleibt und ich in den Genuss kostenloser, nachhaltiger Open-Source-Datenbanken auf Unternehmensebene kommen kann, die nicht von einem kommerziellen Unternehmen oder einem Land kontrolliert werden. Gehen Sie zu O, gehen Sie zu DB2, gehen Sie zu Sybase;
    • Verdienen Sie kein Geld mit Datenbanken;
    • Je mehr Menschen PG nutzen, desto mehr Menschen befürworten es und desto zuverlässiger ist seine Anwendung (das trifft auch zu);
    • Um gute Ideen anzuziehen, investiert das Unternehmen in 2 Forschung und Entwicklung und leistet weiterhin Beiträge (vielleicht eine oder zwei Millionen pro Jahr). Tatsächlich leisten Tausende von Menschen in der gesamten PG-Community einen Beitrag, was für die Endbenutzer einen enormen Gewinn darstellt. Die Nutzung einer kommerziellen Datenbank erfordert neben LIZENZ- und anderen Kosten immer noch Investitionen in Management-, F&E- und Outsourcing-Ressourcen, die sich auf Zehntausende oder sogar Hunderte Millionen pro Jahr belaufen können. Je größer das Unternehmen, desto motivierter ist es zur Gemeinschaft beizutragen. Dem Trend zufolge wird die Zahl der Großkunden, die Code für PG bereitstellen, nur zunehmen.
  • Cloud-Anbieter
    • Open-Source-Datenbanken und Cloud-Anbieter haben Interessenkonflikte und haben ihre Vereinbarungen geändert;
    • Der Datenbankmarkt ist riesig;
    • Selbstforschung ist die beste Wahl, aber es gibt einige Probleme mit Selbstforschung: Sie muss beispielsweise ein Ökosystem kultivieren, muss vom Markt unterstützt werden, erfordert viele F&E-Ressourcen und muss möglicherweise das Rad neu erfinden;

Vorteile der Entwicklung auf Basis von PostgreSQL:

  1. Sie müssen Ihre eigene Ökologie nicht pflegen,
  2. Vermeiden Sie es, das Rad neu zu erfinden,
  3. PostgreSQL verfügt über eine sehr gute Codebasis und wird in der Open-Source-Welt als das Oracle bezeichnet.
  4. Verhindern Sie, dass andere Anbieter PostgreSQL kontrollieren und seine Marktbeherrschung verlieren (AWS, Google, IBM und Microsoft sind alle Sponsoren der PG-Community geworden).

Warum PostgreSQL lernen?

China führt derzeit ein umfassendes Lokalisierungsersatzprojekt durch. Von der Militärindustrie, der Regierung, dem Finanzwesen, der medizinischen Versorgung, dem Bildungswesen bis hin zu Unternehmen werden nach und nach nicht lokalisierte Dinge wie Computerserver, Militärindustrie, Software usw. ersetzt. Datenbanken in Software sind Ein wichtiger Teil. Es gibt viele inländische Datensoftware. Hier sind einige häufig verwendete inländische rekonstruierte relationale zentralisierte Architekturdatenbanken.

Namensdatenbank Unternehmen zugrunde liegende Technologie Technische Version
GaussDB Huawei PostgreSQL 9.6
Polardb-postgres Alibaba PostgreSQL 9.6
Polardb-mysql Alibaba MySQL 5.6
TDSQL-Postgres Tencent PostgreSQL 9.6
TDSQL-mysql Tencent MySQL 5.6
HighgoDatabase weiterführende Schule PostgreSQL 9.6
KingbaseES Renmin-Universität für Finanzen und Wirtschaft PostgreSQL 12
BASE Allgemeine Nutzung der South University PostgreSQL 9.6
DM Dameng Orakel 9i (Quellcode geleakte Version)

Zum Zeitpunkt der Veröffentlichung dieses Artikels beträgt der Anteil der inländischen und ausländischen Datenbanknutzung:

Anteil der ausländischen Datenbanknutzung

Fügen Sie hier eine Bildbeschreibung ein
Datenquelle:https://db-engines.com/en/ranking/relational+dbms

Anteil der inländischen Datenbanknutzung

Fügen Sie hier eine Bildbeschreibung ein
Quelle der Nummer: https://www.modb.pro/dbRank

Sie sehen, dass die wichtigsten zugrunde liegenden Technologien grundsätzlich PostgreSQL verwenden.

Warum basieren die meisten untersten Schichten inländischer Datenbanken auf PostgreSQL statt auf MYSQL?

Als herausragender Vertreter von Open-Source-Datenbanken vergleichen wir vor allem die Urheberrechte von PostgreSQL und MySQL. Das Urheberrecht kann als Lizenz verstanden werden, die in direktem Zusammenhang mit der Beschreibung der Open-Source-Vereinbarung steht. Werfen wir einen Blick auf die Lizenzausdrücke der beiden.

PostgreSQL-Lizenz
Die PostgreSQL-Lizenz ist eine kostenlose Open-Source-Lizenz, ähnlich der BSD- oder MIT-Lizenz. Einige Urheberrechte liegen vor 1994 beim California Board of Directors; 1996–2020 liegen einige Urheberrechte beim globalen PostgreSQL-Entwicklungsteam; die Hauptmitglieder des globalen Entwicklungsteams sind über die ganze Welt verstreut und werden nicht von einer dahinter stehenden Unternehmenseinheit kontrolliert , was es zu einem echten offenen Projekt macht.
Das BSD-Open-Source-Protokoll ist ein Protokoll, das Benutzern große Freiheiten bietet. Sie können es frei verwenden, den Quellcode ändern und den geänderten Code als Open-Source- oder proprietäre Software erneut veröffentlichen. Dies ist als „lebendes Lei Feng“ der Open-Source-Lizenzierung bekannt.
BSD-Code fördert die gemeinsame Nutzung von Code, aber das Urheberrecht des Codeautors muss respektiert werden. BSD ist ein Protokoll, das für die kommerzielle Integration geeignet ist, da es Benutzern die Änderung und Weiterverbreitung von Code ermöglicht und außerdem die Veröffentlichung und den Verkauf kommerzieller Software unter Verwendung oder Entwicklung von BSD-Code ermöglicht. Viele Unternehmen bevorzugen bei der Auswahl von Open-Source-Produkten das BSD-Protokoll, da sie diese Codes von Drittanbietern vollständig kontrollieren und bei Bedarf ändern oder neu entwickeln können.
PostgreSQL-Lizenzbeschreibung: https://www.postgresql.org/about/licence/

MySQL-Lizenz
Wie wir alle wissen, wird MySQL von Oracle kontrolliert und MySQL verwendet sowohl die GPL als auch eine kommerzielle Lizenz (sogenannte Doppellizenzierung).
GPL (General Public License) ist eine öffentliche Lizenz und Software, die der GPL folgt, ist öffentlich. Wenn eine bestimmte Software GPL-Software verwendet, muss die Software auch Open Source sein. Wenn es sich nicht um Open Source handelt, kann GPL-Software nicht verwendet werden. Dies hat nichts damit zu tun, ob die Software kommerzialisiert wird oder nicht.
Wenn Sie die GPL nicht erfüllen können, müssen Sie eine kommerzielle Lizenz erwerben, sich an Oracle wenden und eine Lösung entwickeln, die an Oracle gebunden ist.

Spezifische Einschränkungen:
① Es ist nicht gestattet, Patente auf an MySQL vorgenommene Änderungen anzumelden;
② Änderungen an MySQL müssen veröffentlicht werden und das Eigentum liegt bei Alle im Besitz von Oracle;
③ Quellcode-Änderungen für rein akademische Zwecke und Übungszwecke sind ebenfalls GPL-konform;
④ Oracles MySQL Enterprise Edition oder erweiterte Funktionen sind kostenpflichtig. Und Oracle erlaubt keine anderen Closed-Source-Produkte, die auf MySQL basieren.
Andere auf MySQL basierende Datenbanken folgen ebenfalls der GPL-Lizenz oder der überarbeiteten Version der GPL, GPL V2, wie beispielsweise Mariadb, und müssen diese befolgen. Die GPL-Lizenz steht logischerweise im Widerspruch zur kommerziellen Lizenz. Es versteht sich, dass die kommerzielle Lizenz ein Privileg ist, das dem Unternehmen vorbehalten ist, das MySQL kontrolliert.
Da die GPL strikt vorschreibt, dass Softwareprodukte, die GPL-Klassenbibliotheken verwenden, das GPL-Protokoll verwenden müssen, sind Open-Source-Codes, die das GPL-Protokoll verwenden, kommerzielle Software oder solche, für die Vertraulichkeitsanforderungen für den Code gelten, nicht geeignet zur Integration/Adoption. Klassenbibliothek und Grundlage der sekundären Entwicklung. Von der GPL zur GPL V2 V3 und zur LGPL hat sich diese Vereinbarung weiterentwickelt und der Inhaltsausdruck ist relativ komplex, was sich auf die Entwicklung und Vererbung des Open-Source-Geistes auswirkt und leicht zu Meinungsverschiedenheiten führt.

MySQL-Lizenzbeschreibung:https://www.mysql.com/about/legal/licensing/oem/
GPL V2 Originalbeschreibung: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html

Auf diesen Absatz wird verwiesen von [Entschlüsselung: Warum inländische Datenbanken PostgreSQL anstelle von MySQL verwenden]

PostgreSQL vs. MySQL

Vorteile von PostgreSQL

  1. Die Standardimplementierung von SQL ist vollständiger als die von MySQL und die Funktionsimplementierung ist strenger.
  2. Es bietet eine relativ vollständige Unterstützung für Tabellenverbindungen, relativ vollständige Optimierungsfunktionen, unterstützt viele Indextypen und verfügt über starke komplexe Abfragefunktionen.
  3. Die Haupttabelle von PostgreSQL wird in einer Heap-Tabelle gespeichert, während MySQL einen Index zum Organisieren der Tabelle verwendet, der eine größere Datenmenge als MySQL unterstützen kann.
  4. Die primäre und sekundäre Replikation von PostgreSQL ist eine physische Replikation. Im Vergleich zur Binlog-basierten logischen Replikation von MySQL ist die Datenkonsistenz zuverlässiger, die Replikationsleistung höher und die Hostleistung weniger beeinträchtigt.
  5. PostgreSQL unterstützt JSON und andere NoSQL-Funktionen wie native XML-Unterstützung und Schlüssel-Wert-Paare mithilfe von HSTORE. Es unterstützt auch die Indizierung von JSON-Daten, um den Zugriff zu beschleunigen, insbesondere Version 10 JSONB ist noch leistungsfähiger.
  6. PostgreSQL ist völlig kostenlos und unterliegt dem BSD-Protokoll. Wenn Sie PostgreSQL modifizieren und es dann für Geld verkaufen, wird sich niemand um Sie kümmern. Dies ist sehr wichtig, da es zeigt, dass die PostgreSQL-Datenbank nicht von anderen Unternehmen kontrolliert wird. Im Gegenteil, MySQL wird mittlerweile hauptsächlich von der Oracle Corporation kontrolliert.

Vorteile von MySQL

  1. Der auf Rollback-Segmenten basierende MVCC-Mechanismus von Innodb 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 einem redundanten E/A- und Datenbankobjekt-Sperraufwand führt und dazu führt, dass die allgemeine Parallelitätsfähigkeit der Datenbank abnimmt. Wenn VACUUM außerdem nicht rechtzeitig gereinigt wird, kann es zu einer Datenerweiterung kommen.
  2. MySQL verwendet Indizes zum Organisieren von Tabellen. Diese Speichermethode eignet sich sehr gut für Abfrage- und Löschvorgänge basierend auf dem Primärschlüsselabgleich, es gibt jedoch Einschränkungen beim Design der Tabellenstruktur.
  3. Der Optimierer von MySQL ist relativ einfach und die Implementierung von Systemtabellen, Operatoren und Datentypen ist sehr rationalisiert, sodass er sich sehr gut für einfache Abfragevorgänge eignet.
  4. MySQL ist in China beliebter als PostgreSQL, während PostgreSQL in China etwas einsam zu sein scheint.
  5. Der Plug-In-Mechanismus der Speicher-Engine von MySQL erweitert die Anwendungsszenarien. Beispielsweise eignet sich Innodb nicht nur für Transaktionsverarbeitungsszenarien, sondern auch für statische Datenabfrageszenarien.

Aus Sicht des Anwendungsszenarios eignet sich PG besser für strenge Unternehmensanwendungsszenarien (wie Finanzen, Telekommunikation, ERP, CRM), ist jedoch nicht darauf beschränkt. JSON, JSONB, HSTORE und andere Datenformate von PostgreSQL eignen sich besonders für Einige große Datenformate. Analyse: MySQL eignet sich besser für Internetszenarien mit relativ einfacher Geschäftslogik und geringen Anforderungen an die Datenzuverlässigkeit (wie Google, Facebook, Alibaba). Natürlich wird MySQL jetzt in der Innodb-Engine und seinen Funktionen intensiv weiterentwickelt gute Leistung bringen.

Supongo que te gusta

Origin blog.csdn.net/sinat_36528886/article/details/134957163
Recomendado
Clasificación