PostgreSQL 9.2 verbraucht weniger Strom, arbeitet schneller

Die heute veröffentlichte Version 9.2 der freien relationalen Datenbank PostgreSQL soll wesentlich schneller arbeiten und trotzdem weniger Strom verbrauchen. Sie bietet erstmals einen JSON-Datentyp samt passenden Funktionen.

In Pocket speichern vorlesen Druckansicht 93 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Christian Kirsch

Nur vier Monate nach der ersten Beta-Version erscheint jetzt das fertige PostgreSQL 9.2. Es soll gegenüber dem Vorgänger deutlich schneller geworden sein. Erreicht haben das die Entwickler der freien relationalen Datenbank in erster Linie durch Index-Only-Scans, bei denen der Server wenn möglich Anfragen nur aus den Indexdaten beantwortet, ohne auf die eigentlichen Datenbanktabellen zuzugreifen.

Typische Data-Warehouse-Anfragen soll PostgreSQL dank dieser Technik 20mal schneller ausführen als bislang. Auch bei anderen lesenden Queries soll die Antwort schneller eintreffen: Die Ankündigung spricht von 350.000 Anfragen pro Sekunde, nennt allerdings die für diese Messung benutzte Hardware nicht. Trotz des größeren Durchsatzes soll Version 9.2 fast ein Drittel weniger Strom verbrauchen. Das liegt unter anderem daran, dass ein untätiger Server seltener aufwacht als bisher.

Entwickler können neue Datentypen für die JavaScript Object Notation (JSON) und Intervalle (Range) nutzen. Für eine JSON-Spalte prüft der Server wie bei allen anderen Datentypen, ob die als Zeichenkette eintreffenden Daten den Regeln entsprechen. Mit den Funktionen row_to_json() und array_to_json() gibt man PostgreSQL-Ergebnisse für die Weiterverarbeitung in Web-Anwendungen direkt im JSON-Format aus:

SELECT row_to_json(demo) FROM demo
------------------------------------------------------------------------- {"username":"john","posts":121,"emailaddress":"john@nowhere.com"} {"username":"mickael","posts":215,"emailaddress":"mickael@nowhere.com"}

Wie auch beim INSERT von JSON-Strings dienen die Spaltennamen als Attribut-Bezeichner.

Mit Ranges können Basisdatentypen wie Integer, Timestamp oder Date auf ein Intervall eingegrenzt werden. Dieses Intervall kann offen (die Grenzen gehören nicht dazu), geschlossen (die Grenzen gehören dazu) oder halboffen sein (eine Grenze gehört dazu, die andere nicht). Ranges lassen sich als komplexe Constraints einsetzen, wobei der Server prüft, ob die angegebenen Werte im Intervall liegen. Dadurch lassen sich etwa Doppeltbelegungen von Räumen vermeiden. Auch für Berechnungen kann man sie verwenden, etwa um die Schnittmenge zweier Intervalle zu ermitteln.

Die Release-Notes fassen die Neuerungen in PostgreSQL 9.2 kompakt zusammen. Ausführlicher beschreibt ein längerer Artikel die Änderungen. Auf der Download-Seite des Projekts stehen Binärpakete für BSD, Linux, Solaris, Mac OS X und Windows sowie der Quellcode bereit.

Siehe dazu auch:

(ck)