Habt alle einen tollen Freitag! Bis zum Kursstart bleibt immer weniger Zeit
In Entwicklung
In PostgreSQL 10 erlebten wir die Geburt der „deklarativen Partitionierung“, einer Funktion zur Lösung vieler Probleme, die mit der alten Vererbungsmethode unlösbar waren. Dies führte zu einem viel leistungsfähigeren Tool, mit dem wir Daten horizontal aufteilen konnten!
Funktionsvergleich
PostgreSQL 11 führt eine beeindruckende Reihe neuer Funktionen ein, die dazu beitragen, die Leistung zu verbessern und partitionierte Tabellen für Anwendungen transparenter zu machen.
1. Begrenzende Ausnahmen verwenden
2. Fügt nur Knoten hinzu
3. Nur für eine partitionierte Tabelle, die auf eine nicht partitionierte Tabelle verweist
4. Indizes müssen alle Schlüsselspalten der Partition enthalten
5. Abschnittsbeschränkungen auf beiden Seiten müssen übereinstimmen
Leistung
Auch hier haben wir gute Neuigkeiten! Neue Methode hinzugefügt WHERE
. Der vorherige Algorithmus überprüfte wiederum jeden Abschnitt, um festzustellen, ob er die Bedingung erfüllen konnte WHERE
. Dies führte zu einer zusätzlichen Verlängerung der Planungszeit, da die Anzahl der Abschnitte zunahm.
In 9.6 erfolgte bei der Partitionierung durch Vererbung das Weiterleiten von Tupeln in Partitionen typischerweise durch das Schreiben einer Triggerfunktion, die eine Reihe von IF-Anweisungen enthielt, um das Tupel in die richtige Partition einzufügen. Die Ausführung dieser Funktionen kann sehr langsam sein. Mit der in Version 10 hinzugefügten deklarativen Partitionierung funktioniert dies viel schneller.
Anhand einer partitionierten Tabelle mit 100 Partitionen können wir die Leistung beim Laden von 10 Millionen Zeilen in eine Tabelle mit 1 BIGINT-Spalte und 5 INT-Spalten bewerten.
Leistung beim Abfragen dieser Tabelle, um einen indizierten Datensatz zu finden und DML auszuführen, um einen Datensatz zu bearbeiten (mit nur einem Prozessor):
Hier können wir sehen, dass die Leistung jeder Operation seit PG 9.6 erheblich gestiegen ist. Anfragen SELECT
sehen viel besser aus, insbesondere solche, die bei der Abfrageplanung mehrere Partitionen ausschließen können. Das bedeutet, dass der Planer viel Arbeit überspringen kann, die er vorher hätte erledigen sollen. Beispielsweise werden für unnötige Abschnitte keine Wege mehr angelegt.
Abschluss
Die Tabellenpartitionierung entwickelt sich zunehmend zu einer sehr leistungsstarken Funktion in PostgreSQL. Damit können Sie Daten schnell online anzeigen und offline schalten, ohne auf den Abschluss langsamer, umfangreicher DML-Vorgänge warten zu müssen.. Dies bedeutet auch, dass zusammengehörige Daten zusammen gespeichert werden können, sodass auf die benötigten Daten viel effizienter zugegriffen werden kann. Die in dieser Version vorgenommenen Verbesserungen wären ohne die Entwickler, Prüfer und Committer, die unermüdlich an all diesen Funktionen gearbeitet haben, nicht möglich gewesen.
Vielen Dank an alle! PostgreSQL 11 sieht fantastisch aus!
Hier ist so ein kurzer, aber sehr interessanter Artikel. Teilen Sie Ihre Kommentare mit und vergessen Sie nicht, sich anzumelden
Source: habr.com