{"id":37975,"date":"2019-10-31T22:20:56","date_gmt":"2019-10-31T19:20:56","guid":{"rendered":"https:\/\/prohoster.info\/blog\/apgrejd-dlya-lenivyh-kak-postgresql-12-povyshaet-proizvoditelnost\/"},"modified":"2019-10-31T22:20:56","modified_gmt":"2019-10-31T19:20:56","slug":"apgrejd-dlya-lenivyh-kak-postgresql-12-povyshaet-proizvoditelnost","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/apgrejd-dlya-lenivyh-kak-postgresql-12-povyshaet-proizvoditelnost","title":{"rendered":"Upgrade f\u00fcr Faulenzer: wie PostgreSQL 12 die Leistung steigert","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Upgrade f\u00fcr Faulenzer: wie PostgreSQL 12 die Leistung steigert\" src=\"\/wp-content\/uploads\/2019\/09\/59721c53412b5932a332bd6c687650e8.JPG\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/\">PostgreSQL 12<\/a><\/noindex>, die neueste Version der \u201ebesten relationalen Open-Source-Datenbank der Welt\u201c, wird in ein paar Wochen erscheinen (wenn alles nach Plan l\u00e4uft). Das entspricht dem gewohnten Zeitplan \u2014 jedes Jahr kommt eine neue Version mit einer F\u00fclle neuer Funktionen heraus, und ehrlich gesagt, das ist beeindruckend. Deshalb bin ich ein aktives Mitglied der PostgreSQL-Community geworden.<\/p>\n<p><\/p>\n<p>Meiner Meinung nach enth\u00e4lt PostgreSQL 12 im Gegensatz zu fr\u00fcheren Versionen nicht eine oder zwei revolution\u00e4re Funktionen (wie zum Beispiel Partitionierung oder Parallelabfragen). Ich habe einmal gesagt, dass das Hauptmerkmal von PostgreSQL 12 eine gr\u00f6\u00dfere Stabilit\u00e4t ist. Und ist das nicht genau das, was man braucht, wenn man kritische Gesch\u00e4ftsdaten verwaltet?<\/p>\n<p><\/p>\n<p>Aber PostgreSQL 12 beschr\u00e4nkt sich nicht darauf: Mit neuen Funktionen und Verbesserungen werden Anwendungen besser funktionieren, <em>und von Ihnen wird nur ein Upgrade verlangt!<\/em><\/p>\n<p><\/p>\n<p>(Nun, vielleicht m\u00fcssen Sie die Indizes auch neu aufbauen, aber in dieser Version ist das nicht so dramatisch, wie wir es gewohnt sind.)<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Es w\u00e4re gro\u00dfartig, PostgreSQL zu aktualisieren und sofort signifikante Verbesserungen ohne gro\u00dfen Aufwand zu genie\u00dfen. Vor einigen Jahren habe ich das Upgrade von PostgreSQL 9.4 auf PostgreSQL 10 analysiert und gesehen, wie sich die Anwendungsleistung dank des verbesserten Parallelismus der Abfragen in PostgreSQL 10 beschleunigte. Und das Wichtigste: Es war kaum etwas von mir erforderlich (man musste nur einen Konfigurationsparameter einstellen. <code>max_parallel_workers<\/code>).<\/p>\n<p><\/p>\n<p>Stimmen Sie zu, es ist praktisch, wenn die Anwendungen direkt nach dem Upgrade besser funktionieren. Und wir bem\u00fchen uns sehr, die Benutzer zu erfreuen, denn die Zahl der PostgreSQL-Anwender w\u00e4chst st\u00e4ndig.<\/p>\n<p><\/p>\n<p>Und wie wird ein einfaches Upgrade auf PostgreSQL 12 Sie gl\u00fccklich machen? Lassen Sie es mich Ihnen erz\u00e4hlen.<\/p>\n<p><\/p>\n<h3 id=\"sereznye-uluchsheniya-indeksirovaniya\">Erhebliche Verbesserungen der Indizierung<\/h3>\n<p><\/p>\n<p>Ohne Indizierung kommt eine Datenbank nicht weit. Wie sonst soll man Informationen schnell finden? Das fundamentale Indizierungssystem von PostgreSQL wird als <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/B-tree\">B-Baum<\/a><\/noindex>bezeichnet. Dieser Indextyp ist f\u00fcr Speichersysteme optimiert.<\/p>\n<p><\/p>\n<p>Wir verwenden einfach den Operator <code>CREATE INDEX ON some_table (some_column)<\/code>, und PostgreSQL erledigt die meiste Arbeit, um sicherzustellen, dass der Index aktuell bleibt, w\u00e4hrend wir st\u00e4ndig Werte einf\u00fcgen, aktualisieren und l\u00f6schen. Es funktioniert wie von Zauberhand.<\/p>\n<p><\/p>\n<p>Aber Indizes in PostgreSQL haben ein Problem \u2014 sie <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/checking-for-postgresql-bloat\">wachsen auf.<\/a><\/noindex> und nehmen zus\u00e4tzlichen Speicherplatz auf der Festplatte ein, w\u00e4hrend die Leistung beim Abrufen und Aktualisieren von Daten nachl\u00e4sst. Mit \"Aufbl\u00e4hen\" meine ich die ineffiziente Pflege der Indexstruktur. Dies kann mit \u00fcberfl\u00fcssigen Tupeln in Zusammenhang stehen, die entfernt werden. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/sql-vacuum.html\">VACUUM<\/a><\/noindex> (Danke f\u00fcr die Informationen an Peter Geoghegan (<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/petervgeoghegan\">Peter Geoghegan<\/a><\/noindex>)). Das Aufbl\u00e4hen des Index ist besonders bemerkbar bei Arbeitslasten, in denen der Index aktiv ver\u00e4ndert wird.<\/p>\n<p><\/p>\n<p>PostgreSQL 12 verbessert die Leistung von B-Baum-Indizes erheblich, und Experimente mit TPC-C-\u00e4hnlichen Tests haben gezeigt, dass im Durchschnitt 40% weniger Speicherplatz verwendet wird. Nun verbringen wir weniger Zeit nicht nur mit der Wartung von B-Baum-Indizes (also mit Schreiboperationen), sondern auch mit dem Abrufen von Daten, da die Indizes viel kleiner geworden sind.<\/p>\n<p><\/p>\n<p>Anwendungen, die aktiv ihre Tabellen aktualisieren \u2013 typischerweise OLTP-Anwendungen (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Online_transaction_processing\">Echtzeit-Transaktionsverarbeitung<\/a><\/noindex>) \u2013 werden die Festplatte viel effizienter nutzen und Anfragen verarbeiten. Je mehr Platz auf der Festplatte, desto mehr Raum hat die Datenbank f\u00fcr Wachstum, ohne die Infrastruktur aufzur\u00fcsten.<\/p>\n<p><\/p>\n<p>Einige Upgrade-Strategien erfordern einen Neuaufbau der B-Baum-Indizes, um von diesen Vorteilen zu profitieren (zum Beispiel, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/pgupgrade.html\">pg_upgrade<\/a><\/noindex> stellt die Indizes nicht automatisch wieder her). In fr\u00fcheren Versionen von PostgreSQL f\u00fchrte der Neuaufbau gro\u00dfer Indizes in Tabellen zu erheblichen Ausfallzeiten, da w\u00e4hrend dieser Zeit keine \u00c4nderungen vorgenommen werden konnten. Aber in PostgreSQL 12 gibt es noch ein weiteres gro\u00dfartiges Feature: Jetzt k\u00f6nnen Indizes parallel mit dem Befehl <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/12\/sql-reindex.html\">REINDEX CONCURRENTLY<\/a><\/noindex>, um Ausfallzeiten vollst\u00e4ndig zu vermeiden.<\/p>\n<p><\/p>\n<p>In PostgreSQL 12 gibt es auch weitere Verbesserungen der Indexinfrastruktur. Ein weiteres Thema, wo ein wenig Magie im Spiel ist, ist <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/wal-intro.html\">ein Journal f\u00fcr vorbeugende Aufzeichnung.<\/a><\/noindex>, auch bekannt als WAL (Write-Ahead-Log). Das Journal f\u00fcr vorauseilende Aufzeichnungen protokolliert jede Transaktion in PostgreSQL f\u00fcr den Fall eines Ausfalls und zur Replikation. Anwendungen nutzen es zur Archivierung und <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/pgbackrest-point-in-time-recovery-using-crunchy-postgresql-operator\">Wiederherstellung zum Zeitpunkt<\/a><\/noindex>. Nat\u00fcrlich wird das vorauseilende Journal auf die Festplatte geschrieben, was sich auf die Leistung auswirken kann.<\/p>\n<p><\/p>\n<p>In PostgreSQL 12 wurden die WAL-Kosten, die durch GiST-, GIN- und SP-GiST-Indizes bei der Indexerstellung entstehen, verringert. Dies bietet mehrere greifbare Vorteile: WAL-Eintr\u00e4ge nehmen weniger Speicherplatz auf der Festplatte ein, und Daten werden schneller wiederhergestellt, beispielsweise w\u00e4hrend der Wiederherstellung nach einem Ausfall oder der zeitlich begrenzten Wiederherstellung. Wenn Sie solche Indizes in Ihren Anwendungen verwenden (zum Beispiel nutzen geospatial Anwendungen auf Basis von PostGIS h\u00e4ufig den GiST-Index), ist dies ein weiteres Merkmal, das die Leistung erheblich verbessert, ohne dass Sie gro\u00dfen Aufwand leisten m\u00fcssen.<\/p>\n<p><\/p>\n<h3 id=\"sekcionirovanie--bolshe-luchshe-bystree\">Partitionierung \u2013 mehr, besser, schneller<\/h3>\n<p><\/p>\n<p>In PostgreSQL 10 wurde eingef\u00fchrt <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/ddl-partitioning.html\">deklarative Partitionierung<\/a><\/noindex>. In PostgreSQL 11 wurde es deutlich einfacher zu nutzen. In PostgreSQL 12 k\u00f6nnen Sie die Gr\u00f6\u00dfe der Partitionen \u00e4ndern.<\/p>\n<p><\/p>\n<p>In PostgreSQL 12 wurde die Leistung des Partitionierungssystems erheblich verbessert, insbesondere wenn Tabellen Tausende von Partitionen enthalten. Wenn eine Abfrage nur einige Partitionen in einer Tabelle betrifft, in der es Tausende gibt, wird sie viel schneller ausgef\u00fchrt. Die Leistung wurde nicht nur f\u00fcr solche Abfragetypen verbessert. Auch die INSERT-Operationen in Tabellen mit vielen Partitionen wurden beschleunigt.<\/p>\n<p><\/p>\n<p>Das Datenbankeinf\u00fcgen durch <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/sql-copy.html\">COPY<\/a><\/noindex> ist \u00fcbrigens eine gro\u00dfartige M\u00f6glichkeit <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/fast-csv-and-json-ingestion-in-postgresql-with-copy\">f\u00fcr die Massenladung von Daten<\/a><\/noindex> und hier ist ein Beispiel <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/fast-csv-and-json-ingestion-in-postgresql-with-copy\">wie man JSON<\/a><\/noindex> in partitionierte Tabellen in PostgreSQL 12 ebenfalls effektiver gemacht hat. Mit COPY war es schon immer schnell, aber in PostgreSQL 12 ist es einfach blitzschnell.<\/p>\n<p><\/p>\n<p>Dank dieser Vorteile k\u00f6nnen in PostgreSQL noch gr\u00f6\u00dfere Datens\u00e4tze gespeichert und einfacher abgerufen werden. Und das ganz ohne gro\u00dfen Aufwand Ihrerseits. Wenn eine Anwendung viele Partitionen hat, beispielsweise bei der Speicherung von Zeitreihendaten, f\u00fchrt ein einfacher Upgrade zu einer erheblichen Leistungsverbesserung.<\/p>\n<p><\/p>\n<p>Und obwohl diese Verbesserung nicht ganz in die Kategorie 'Wir haben ein Upgrade gemacht und freuen uns' f\u00e4llt, k\u00f6nnen in PostgreSQL 12 Fremdschl\u00fcssel erstellt werden, die auf partitionierte Tabellen verweisen, sodass die Arbeit mit Partitionierung viel Freude bereitet.<\/p>\n<p><\/p>\n<h3 id=\"zaprosy-with-stali-gorazdo-luchshe\">WITH-Abfragen sind viel besser geworden<\/h3>\n<p><\/p>\n<p>Wenn <noindex><a rel=\"nofollow\" href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commitdiff;h=608b167f9f9c4553c35bb1ec0eab9ddae643989b\">ein Patch f\u00fcr inlined allgemeine Tabellenausdr\u00fccke wurde angewendet<\/a><\/noindex> (auch bekannt als CTE, auch bekannt als WITH-Abfragen), ich konnte es kaum erwarten, einen Artikel dar\u00fcber zu schreiben, <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/with-queries-present-future-common-table-expressions\">wie die Anwendungsentwickler von PostgreSQL sich dar\u00fcber gefreut haben<\/a><\/noindex>. Dies ist eines dieser Merkmale, die die Anwendung beschleunigen werden. Wenn Sie nat\u00fcrlich CTE verwenden.<\/p>\n<p><\/p>\n<p>Ich stelle oft fest, dass Neulinge in SQL gerne CTE verwenden: Wenn man sie auf gewisse Weise schreibt, hat man das Gef\u00fchl, man schreibe ein imperatives Programm. Ich pers\u00f6nlich habe es geliebt, diese Abfragen umzuschreiben, um damit auszukommen <em>ohne<\/em> CTE und die Leistung zu steigern. Jetzt ist alles anders.<\/p>\n<p><\/p>\n<p>PostgreSQL 12 erm\u00f6glicht es, einen bestimmten Typ von CTE ohne Nebenwirkungen einzubetten (<code>SELECT<\/code>), der nur einmal n\u00e4her am Ende der Abfrage verwendet wird. Wenn ich eine Statistik \u00fcber CTE-Abfragen f\u00fchren w\u00fcrde, die ich umgeschrieben habe, w\u00fcrden die meisten in diese Kategorie fallen. Das hilft Entwicklern, verst\u00e4ndlichen Code zu schreiben, der jetzt auch schnell funktioniert.<\/p>\n<p><\/p>\n<p>Dar\u00fcber hinaus optimiert PostgreSQL 12 die Ausf\u00fchrung von SQL selbst, sodass Sie nichts tun m\u00fcssen. Und obwohl ich jetzt wahrscheinlich nicht mehr solche Abfragen optimieren muss, ist es gro\u00dfartig, dass PostgreSQL weiterhin an der Optimierung von Abfragen arbeitet.<\/p>\n<p><\/p>\n<h3 id=\"just-in-time-jit--teper-po-umolchaniyu\">Just-in-Time (JIT) \u2013 jetzt standardm\u00e4\u00dfig aktiviert<\/h3>\n<p><\/p>\n<p>In PostgreSQL 12-Systemen mit Unterst\u00fctzung f\u00fcr <noindex><a rel=\"nofollow\" href=\"https:\/\/llvm.org\/\">LLVM<\/a><\/noindex> JIT-Kompilierung ist standardm\u00e4\u00dfig aktiviert. Erstens erhalten Sie Unterst\u00fctzung f\u00fcr <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/jit.html\">JIT<\/a><\/noindex> f\u00fcr einige interne Operationen, und zweitens k\u00f6nnen Abfragen mit Ausdr\u00fccken (ein einfaches Beispiel ist x + y) in den Auswahllisten (die Sie nach SELECT haben), Aggregaten, Ausdr\u00fccken mit WHERE-Klauseln und anderen JIT zur Leistungssteigerung nutzen.<\/p>\n<p><\/p>\n<p>Da JIT in PostgreSQL 12 standardm\u00e4\u00dfig aktiviert ist, wird die Leistung von selbst verbessert, aber ich empfehle, die Anwendung in PostgreSQL 11 zu testen, wo JIT gerade erst eingef\u00fchrt wurde, um die Leistung der Abfragen zu messen und herauszufinden, ob etwas angepasst werden muss.<\/p>\n<p><\/p>\n<h3 id=\"a-kak-zhe-ostalnye-novye-fichi-postgresql-12\">Was ist mit den anderen neuen Features von PostgreSQL 12?<\/h3>\n<p><\/p>\n<p>PostgreSQL 12 bietet eine Menge neuer cooler Funktionen \u2013 vom Erkunden von JSON-Daten mit standardisierten SQL\/JSON-Pfad-Ausdr\u00fccken bis hin zu Mehrfaktorauthentifizierung mit der Option <code>clientcert=verify-full<\/code>, erzeugten Spalten und vielem mehr. Das ist genug f\u00fcr einen eigenen Beitrag.<\/p>\n<p><\/p>\n<p>Wie PostgreSQL 10 wird PostgreSQL 12 die allgemeine Leistung sofort nach dem Upgrade steigern. Ihr k\u00f6nnt nat\u00fcrlich euren eigenen Weg haben \u2013 testet die Anwendung unter \u00e4hnlichen Bedingungen in einem produktiven System, bevor ihr die Verbesserungen aktiviert, wie ich es mit PostgreSQL 10 getan habe. Selbst wenn PostgreSQL 12 jetzt stabiler ist, als ich es vermutete, scheut euch nicht, die Anwendungen gr\u00fcndlich zu testen, bevor ihr sie in die Produktion gebt.<\/p>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/466727\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>PostgreSQL 12, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u00ab\u043b\u0443\u0447\u0448\u0435\u0439 \u0432 \u043c\u0438\u0440\u0435 \u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c\u00bb, \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u0440\u0443-\u0442\u0440\u043e\u0439\u043a\u0443 \u043d\u0435\u0434\u0435\u043b\u044c (\u0435\u0441\u043b\u0438 \u0432\u0441\u0435 \u043f\u043e\u0439\u0434\u0435\u0442 \u043f\u043e \u043f\u043b\u0430\u043d\u0443). \u042d\u0442\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0431\u044b\u0447\u043d\u043e\u043c\u0443 \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u2014 \u043d\u043e\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u0441 \u0443\u0439\u043c\u043e\u0439 \u043d\u043e\u0432\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0440\u0430\u0437 \u0432 \u0433\u043e\u0434, \u0438, \u0447\u0435\u0441\u0442\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u044f, \u044d\u0442\u043e \u0432\u043f\u0435\u0447\u0430\u0442\u043b\u044f\u0435\u0442. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0438 \u0441\u0442\u0430\u043b \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u043c \u0447\u043b\u0435\u043d\u043e\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 PostgreSQL. \u041f\u043e-\u043c\u043e\u0435\u043c\u0443, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":28500,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-37975","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/apgrejd-dlya-lenivyh-kak-postgresql-12-povyshaet-proizvoditelnost\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0410\u043f\u0433\u0440\u0435\u0439\u0434 \u0434\u043b\u044f \u043b\u0435\u043d\u0438\u0432\u044b\u0445: \u043a\u0430\u043a PostgreSQL 12 \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/apgrejd-dlya-lenivyh-kak-postgresql-12-povyshaet-proizvoditelnost\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:20:56+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:20:56+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Upgrade f\u00fcr Faule: Wie PostgreSQL 12 die Leistung steigert | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/apgrejd-dlya-lenivyh-kak-postgresql-12-povyshaet-proizvoditelnost","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0410\u043f\u0433\u0440\u0435\u0439\u0434 \u0434\u043b\u044f \u043b\u0435\u043d\u0438\u0432\u044b\u0445: \u043a\u0430\u043a PostgreSQL 12 \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c | ProHoster","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/apgrejd-dlya-lenivyh-kak-postgresql-12-povyshaet-proizvoditelnost","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:20:56+00:00","article:modified_time":"2019-10-31T19:20:56+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"37975","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 19:59:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:17:22","updated":"2026-01-23 19:59:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/37975","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=37975"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/37975\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/28500"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=37975"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=37975"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=37975"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}