PostgreSQL ist ein Open-Source-Managementsystem für objektrelationale Datenbanken (ORDBMS, Object-Relational DataBase Management System), das für seine Zuverlässigkeit und Performance bekannt ist. Seine primären Funktionen bestehen im sicheren Speichern und Abrufen von Daten bei gleichzeitiger Unterstützung aktueller Computing-Best-Practices.
Mit über 30 Jahren aktiver Entwicklung und der Unterstützung einer engagierten Open-Source-Gemeinschaft konkurriert PostgreSQL mit den führenden kommerziellen Datenbanken wie SQL Server und Oracle. PostgreSQL hat sich zur bevorzugten relationalen Open-Source-Datenbank vieler Unternehmen entwickelt.
Wie funktioniert PostgreSQL?
PostgreSQL verwendet eine Client-Server-Architektur, die es ermöglicht, dass sich Client und Server auf verschiedenen Hosts im Netzwerk befinden. Das Serverprogramm verwaltet Datenbankdateien und akzeptiert mehrere gleichzeitige Verbindungen von Client-Anwendungen zur Datenbank und führt diese Verbindungen aus. Remote-Clients können über das Netzwerk oder das Internet eine Verbindung zum Server herstellen.
Was ist search_path in Postgres?
Mit der PostgreSQL-Variable „search_path“ können Sie die Reihenfolge bestimmen, in der Schemata durchsucht werden, und entscheiden, welche Schemata keine Schemaqualifikation verwenden müssen.
Das erste Schema, das im Suchpfad zurückgegeben wird, wird als das „aktuelle Schema“ bezeichnet. Wenn beim Erstellen neuer Objekte wie Tabellen kein Schema-Name angegeben wird, wird die Tabelle im aktuellen Schema erstellt.
„search_path“ kann auf mehreren Ebenen festgelegt werden, die PostgreSQL mitteilen, welche Suchpfadeinstellung verwendet werden soll. Dazu gehören folgende Ebenen:
- Funktionsebene: Gilt für die Ausführungsdauer einer Funktion innerhalb einer Funktion
- Sitzungsebene: Gilt für die Dauer der Sitzung
- Datenbankbenutzerebene: Gilt für eine neue Sitzung
- Serverbenutzerebene: Gilt für neue Sitzungen
- Datenbankebene: Gilt für neue Sitzungen
Sind Postgres und PostgreSQL dasselbe?
PostgreSQL leitet sich vom POSTGRES-Projekt ab, das 1986 an der University of California in Berkeley ins Leben gerufen wurde. Nachdem das POSTGRES-Projekt im Jahr 1993 endete, wurde 1995 Postgres95 basierend auf POSTGRES-Code entwickelt und ein SQL-Interpreter wurde als Ersatz für die Abfragesprache PostQUEL hinzugefügt.
Im Jahr 1996, als der Name Postgres95 obsolet wurde, entschied man sich für PostgreSQL als neuen Namen, um auf das ursprüngliche POSTGRES-Projekt sowie auf die hinzugefügte Unterstützung für SQL hinzuweisen. „PostgreSQL“ ist zwar der offizielle Name, aber „Postgres“ ist ein gängiger Kurzname, und PostgreSQL wird heute in der Regel als „Postgres“ bezeichnet.
Was ist die PostgreSQL-Volltextsuche?
Mit der PostgreSQL-Volltextsuche können Sie nach einem einzelnen Dokument oder nach einer Sammlung von Dokumenten in einer Volltext-Datenbank suchen. Die Volltextsuche kann auch Dokumente in natürlicher Sprache, die die Anforderungen einer Abfrage erfüllen, identifizieren und nach Relevanz für die Abfrage sortieren.
Mit den Klauseln „LIKE“ und „ILIKE“ können zwar Zeichenfolge-Suchabfragen durchgeführt werden, aber die Wörter im Text werden nicht indiziert, was zu Performance-Einbußen führt. Bei der Volltextsuche werden Dokumente für schnellere Suchergebnisse indiziert und sie unterstützt Wörterbücher für eine feinere Steuerung der Token-Normalisierung.
Zwei Funktionen werden verwendet, um die PostgreSQL-Volltextsuche zu implementieren:
- to_tsvector: ts steht für „Text Search“, und diese Funktion wird verwendet, um eine Liste von Tokens des Datentyps „tsvector“ zu erstellen.
- to_tsquery: Mit dieser Funktion kann der Vektor nach bestimmten Wörtern oder Phrasen abgefragt werden.
Warum ist die PostgreSQL-Performance so wichtig?
PostgreSQL ist in vielen Branchen weit verbreitet und wird häufig für Data Warehousing und hochtransaktionale, komplexe Anwendungen eingesetzt, die große Datenmengen benötigen. Für diese Art von Anwendungen ist die Performance ein wichtiger Faktor.
PostgreSQL verfügt über mehrere Funktionen zur Steigerung und Optimierung der Performance. Die aktuelle Version von PostgreSQL, v14, bietet zusätzliche Unterstützung für komplexe Datentypen und unstrukturierte Daten in JavaScript Object Notation (JSON). PostgreSQL v14 umfasst Fortschritte bei der Parallelität von Verbindungen und von Abfragen, bei hoher Auslastung durch Schreibvorgänge und bei der logischen Replikation, was den kontinuierlichen Fokus von PostgreSQL auf die Verbesserung der Performance widerspiegelt.
Wie viele PostgreSQL-Versionen gibt es?
Die aktuelle Version von PostgreSQL ist Version 14, die am 30. September 2021 herausgegeben wurde. Sie bietet zusätzliche Unterstützung für komplexe Datentypen und Funktionen, die die Arbeit mit JSON und nicht zusammenhängenden Datenbereichen erleichtern. Version 14 umfasst außerdem Funktionen, die Verbesserungen im Hinblick auf hohe Workloads, verteilte Workloads, Verwaltung und Beobachtbarkeit sowie Sicherheit bieten.
Andere PostgreSQL-Versionen, die noch immer unterstützt werden, sind 13, 12, 11, 10 und 9.6. Versionen 9 und 10 sind für Linux x86-64, Linux x86-32, Mac OS X, Windows x86-64 und Windows x86-32 verfügbar. Versionen 11 bis 14 sind nur für Mac OS X und Windows verfügbar.
Drei Vorteile von PostgreSQL gegenüber SQL
PostgreSQL hat folgende Vorteile gegenüber SQL Server:
Open-Source und kostenlos
PostgreSQL ist ein kostenloses Open-Source-Managementsystem für objektrelationale Datenbanken, das von der PostgreSQL Global Development Group verwaltet und von einer aktiven Community unterstützt wird, die kontinuierlich Beiträge zu neuen und bestehenden Funktionen liefert. SQL Server ist ein proprietäres kommerzielles Datenbankmanagementsystem, das von Microsoft entwickelt und gepflegt wird. Es ist in verschiedenen Editionen erhältlich, die von Einstiegsversionen bis zu voll ausgestatteten Enterprise Editions reichen.
Unterstützung für mehr Betriebssysteme
PostgreSQL ist auf zahlreichen Betriebssystemen verfügbar, darunter Windows, Linux, OS X, Unix, FreeBSD, HP-UX, NetBSD, OpenBSD und Solaris. SQL Server ist nur auf Windows- und Linux-Plattformen verfügbar.
Verwaltung von Parallelität
PostgreSQL verfügt über ein robustes Parallelitäts-Managementsystem mit Multiversion Concurrency Control, das es mehreren Prozessen erlaubt, gleichzeitig auf gemeinsame Daten zuzugreifen und diese zu ändern. Mit SQL Server können Sie Parallelitätsprobleme und lang laufende Abfragen erkennen, aber Prozesse unterliegen häufig Sperren, Blockierungen und Deadlocks.
Wann sollten Sie PostgreSQL verwenden?
Dies sind mehrere Fälle, in denen PostgreSQL die richtige Wahl sein kann:
Skalierbare NoSQL-Workloads
Moderne Website-Anwendungen verarbeiten bis zu mehrere hunderttausend Anfragen pro Sekunde beim Bedienen von Kunden. Aus diesem Grund ist Skalierbarkeit für die meisten Unternehmen ein wichtiger Faktor.
Als objektrelationale Datenbank bietet PostgreSQL sowohl relationale als auch dokumentenorientierte Funktionen in ein und demselben Produkt und unterstützt somit eine breite Palette von Anwendungen. PostgreSQL funktioniert gut bei gängigen modernen Web-Frameworks wie Django und Node.js und Sprachen wie Java, Python, Ruby on Rails und PHP. PostgreSQL bietet auch eine Replikationsfunktion, mit der Sie eine Skalierung auf so viele Datenbankserver wie nötig vornehmen können.
OLTP, Analysen und Business-Intelligence
Finanzunternehmen jeder Größe verwenden PostgreSQL als primäre Datenbank für Anwendungen und Produkte. PostgreSQL ist vollständig ACID-konform (Atomicity, Consistency, Isolation, and Durability) und eignet sich ideal für OLTP-Workloads (Online Transaction Processing). Es lässt sich auch mit mathematischer Software wie Matlab und R integrieren, um Analysen und Business-Intelligence-Verarbeitung durchzuführen.
Räumliche Daten
In Verbindung mit PostGIS, einer räumlichen Datenbankerweiterung, bietet PostgreSQL zusätzliche Unterstützung für die Ausführung von Standortabfragen zu geografischen Objekten in SQL und für die räumliche Datenanalyse. PostGIS ist hochgradig standardkonform, bietet Hunderte von Funktionen zur Verarbeitung von Geometriedaten in verschiedenen Formaten und kann sowohl mit QGIS als auch mit GeoServer verwendet werden, um die Verarbeitung von Geodaten zu erleichtern.
Antworten auf vier Fragen zu PostgreSQL
Dies sind Antworten auf häufig gestellte Fragen zu PostgreSQL:
Was ist der wichtigste Unterschied zwischen MySQL und PostgreSQL?
PostgreSQL ist ein Managementsystem für objektrelationale Datenbanken. MySQL ist ein Managementsystem für relationale Datenbanken (RDBMS, Relational DataBase Management System). Postgres legt den Fokus auf Erweiterbarkeit und auf die Einhaltung von Standards.
Postgres (auf der RDBMS-Seite) ist transaktional und ACID-konform, mit Funktionen für aktualisierbare und materialisierte Ansichten, Trigger und Fremdschlüssel. PSQL unterstützt auch JSON-Datentypen zur Speicherung von JSON-Daten sowie JSON-spezifische Funktionen und Operatoren zur Durchführung nicht-relationaler Abfragen.
Warum sollte ich PostgreSQL und nicht MySQL verwenden?
MySQL ist ein RDBMS, das Daten in Tabellen aus Zeilen und Spalten speichert. MySQL ist die ideale Wahl, wenn Sie ein hochgradig sicheres RDBMS mit Schwerpunkt auf Integration und Erweiterbarkeit für Webanwendungen und angepasste Lösungen suchen.
PostgreSQL ist eine objektrelationale Datenbank, die sowohl relationale Datenbankfunktionen als auch NoSQL-Funktionen zur Abfrage unstrukturierter Daten enthält. Wählen Sie PostgreSQL, wenn Sie komplexe Prozeduren und Designs, Integrationen und Datenintegrität benötigen.
Worin unterscheiden sich PostgreSQL und MySQL?
Dies sind einige der Unterscheidungspunkte:
- Lizenzierung: PostgreSQL ist eine kostenlose Open-Source-Software, die unter der PostgreSQL-Lizenz verfügbar ist. Der MySQL-Quellcode ist ebenfalls Open-Source-Code unter der GNU-Lizenz, befindet sich jedoch im Besitz von Oracle und unterliegt mehreren proprietären Vereinbarungen. Oracle bietet verschiedene kostenpflichtige Versionen für die kommerzielle Nutzung an.
- Performance: PostgreSQL eignet sich am besten für Data-Warehousing- und Datenanalyseanwendungen, die schnelle Lese- und Schreibgeschwindigkeiten erfordern. MySQL eignet sich besser für OLAP- (Online-Analytical-Processing) und OLTP-Systeme (Online-Transaction-Processing), bei denen nur hohe Lesegeschwindigkeiten wichtig sind.
- ACID-Konformität: Während PostgreSQL vollständig ACID-konform ist, ist MySQL nur dann ACID-konform, wenn es mit den Storage-Engines NDB und InnoDB Cluster verwendet wird.
Warum ist PostgreSQL so beliebt?
PostgreSQL unterstützt sowohl relationale als auch dokumentenorientierte Daten und ermöglicht die Speicherung und Abfrage verschiedener Datentypen in denselben Datentabellen. Die Schnelligkeit, Sicherheit und Stabilität von PostgreSQL bedeutet, dass es für die meisten Anwendungen geeignet ist. Aufgrund der kontinuierlichen Verbesserung von Performance und Effizienz wandern Benutzer von etablierten kommerziellen Datenbanken wie Oracle zu PostgreSQL ab.
PostgreSQL-Workloads mit Pure beschleunigen
Bieten Sie mit der Schnelligkeit, Performance und Zuverlässigkeit von NVMe-Storage und All-Flash-Arrays von Pure Storage® eine Modern Data Experience™.
PostgreSQL, das 2020 (sowie 2017 und 2018) zum „DBMS des Jahres“ gekürt wurde, wird aufgrund seiner schnellen Performance und Zuverlässigkeit immer häufiger eingesetzt. Unsere Tests zeigen, dass PostgreSQL auf FlashArray™-Storage besser funktioniert als auf einem vergleichbaren SAS-DAS-System. FlashArray//X bietet eine konsistente Performance für Datenbank-Workloads und umfangreiche Unternehmensfunktionen, die DAS nicht bereitstellen kann.
Wählen Sie Performance-optimierten FlashArray//X-End-to-End-NVMe- und -NVMe-oF-Storage für Ihre Tier-0- und Tier-1-Workloads.