{"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\/it\/blog\/administrirovanie\/apgrejd-dlya-lenivyh-kak-postgresql-12-povyshaet-proizvoditelnost","title":{"rendered":"Aggiornamento per pigri: come PostgreSQL 12 migliora le performance","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Aggiornamento per pigri: come PostgreSQL 12 migliora le performance\" 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>, l'ultima versione del \"miglior database relazionale open source al mondo\", uscir\u00e0 tra un paio di settimane (se tutto va secondo i piani). Questo \u00e8 in linea con il consueto calendario \u2014 una nuova versione con una serie di nuove funzionalit\u00e0 esce ogni anno, e, a dire il vero, \u00e8 impressionante. \u00c8 per questo che sono diventato un membro attivo della comunit\u00e0 PostgreSQL.<\/p>\n<p><\/p>\n<p>Secondo me, a differenza delle versioni passate, PostgreSQL 12 non contiene una o due funzionalit\u00e0 rivoluzionarie (come la partizionatura o il parallelismo delle query). Una volta scherzai dicendo che la vera novit\u00e0 di PostgreSQL 12 \u00e8 una maggiore stabilit\u00e0. E non \u00e8 proprio ci\u00f2 di cui hai bisogno quando gestisci dati critici per la tua attivit\u00e0?<\/p>\n<p><\/p>\n<p>Ma PostgreSQL 12 non si ferma qui: con le nuove funzionalit\u00e0 e miglioramenti, le applicazioni funzioneranno meglio, <em>e a te basta semplicemente effettuare l'aggiornamento!<\/em><\/p>\n<p><\/p>\n<p>(Beh, forse \u00e8 necessario ricostruire anche gli indici, ma in questa versione non \u00e8 cos\u00ec problematico come siamo abituati a pensare.)<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Sarebbe fantastico eseguire l'upgrade a PostgreSQL e godere immediatamente di significativi miglioramenti senza troppi sforzi. Alcuni anni fa ho analizzato l'aggiornamento da PostgreSQL 9.4 a PostgreSQL 10 e ho notato come l'applicazione fosse diventata pi\u00f9 veloce grazie al migliorato parallelismo delle query in PostgreSQL 10. E, soprattutto, non ho dovuto fare quasi nulla (solo impostare il parametro di configurazione <code>max_parallel_workers<\/code>).<\/p>\n<p><\/p>\n<p>Concordate che \u00e8 comodo vedere il miglioramento delle prestazioni delle applicazioni subito dopo l'aggiornamento? Ci impegniamo molto per soddisfare i nostri utenti, dato che gli utilizzatori di PostgreSQL stanno aumentando sempre di pi\u00f9.<\/p>\n<p><\/p>\n<p>E come un semplice upgrade a PostgreSQL 12 vi render\u00e0 felici? Ve lo racconto ora.<\/p>\n<p><\/p>\n<h3 id=\"sereznye-uluchsheniya-indeksirovaniya\">Miglioramenti significativi nell'indicizzazione<\/h3>\n<p><\/p>\n<p>Senza indicizzazione, un database non andr\u00e0 lontano. Come poter trovare rapidamente le informazioni? Il sistema di indicizzazione fondamentale di PostgreSQL \u00e8 chiamato <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/B-tree\">B-tree<\/a><\/noindex>. Questo tipo di indice \u00e8 ottimizzato per i sistemi di archiviazione.<\/p>\n<p><\/p>\n<p>Utilizziamo semplicemente l'operatore <code>CREATE INDEX ON some_table (some_column)<\/code>, e PostgreSQL si occupa del lavoro pesante per mantenere l'indice aggiornato mentre continuiamo ad inserire, aggiornare e rimuovere valori. Tutto funziona da solo, come per magia.<\/p>\n<p><\/p>\n<p>Tuttavia, gli indici di PostgreSQL hanno un problema: sono <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/checking-for-postgresql-bloat\">gonfiati<\/a><\/noindex> e occupano spazio inutile su disco, riducendo le prestazioni di estrazione e aggiornamento dei dati. Con 'gonfiamento' intendo il mantenimento inefficace della struttura dell'indice. Questo pu\u00f2 essere \u2014 e non essere \u2014 collegato a tuple di spazzatura che vengono eliminate <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/sql-vacuum.html\">VACUUM<\/a><\/noindex> (grazie all'informazione di Peter Geoghegan (<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/petervgeoghegan\">Peter Geoghegan<\/a><\/noindex>)). Il gonfiamento dell'indice \u00e8 particolarmente evidente in carichi di lavoro in cui l'indice viene attivamente modificato.<\/p>\n<p><\/p>\n<p>PostgreSQL 12 migliora notevolmente il funzionamento degli indici B-tree, e esperimenti con test di tipo TPC-C hanno dimostrato che ora viene utilizzato, in media, il 40% di spazio in meno. Ora dedichiamo meno tempo non solo alla manutenzione degli indici B-tree (cio\u00e8 alle operazioni di scrittura), ma anche all'estrazione dei dati, visto che gli indici sono diventati molto pi\u00f9 piccoli.<\/p>\n<p><\/p>\n<p>Le applicazioni che aggiornano attivamente le proprie tabelle \u2014 solitamente si tratta di applicazioni OLTP (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Online_transaction_processing\">elaborazione delle transazioni in tempo reale<\/a><\/noindex>) \u2014 utilizzeranno molto pi\u00f9 efficientemente il disco e gestiranno le query. Pi\u00f9 spazio c'\u00e8 su disco, maggiore sar\u00e0 lo spazio disponibile per la crescita del database senza dover aggiornare l'infrastruttura.<\/p>\n<p><\/p>\n<p>Alcune strategie di aggiornamento richiedono la ricostruzione degli indici B-tree per sfruttare questi vantaggi (ad esempio, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/pgupgrade.html\">pg_upgrade<\/a><\/noindex> non ricostruir\u00e0 automaticamente gli indici). Nelle versioni precedenti di PostgreSQL, la ricostruzione di grandi indici nelle tabelle comportava tempi di inattivit\u00e0 significativi, poich\u00e9 durante questo periodo non era possibile apportare modifiche. Ma in PostgreSQL 12 c'\u00e8 un'altra caratteristica interessante: ora \u00e8 possibile ricostruire gli indici in parallelo con il comando <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/12\/sql-reindex.html\">REINDEX CONCURRENTLY<\/a><\/noindex>, per evitare completamente i tempi di inattivit\u00e0.<\/p>\n<p><\/p>\n<p>In PostgreSQL 12 ci sono anche altri miglioramenti nell'infrastruttura degli indici. Un'altra cosa, dove non \u00e8 mancata la magia, \u00e8 il <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/wal-intro.html\">write-ahead log<\/a><\/noindex>, conosciuto anche come WAL (write-ahead log). Il write-ahead log registra ogni transazione in PostgreSQL in caso di guasto e replica. Le applicazioni lo utilizzano per l'archiviazione e <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/pgbackrest-point-in-time-recovery-using-crunchy-postgresql-operator\">il ripristino a un determinato punto nel tempo<\/a><\/noindex>. Naturalmente, il write-ahead log viene registrato su disco, il che pu\u00f2 influire sulle prestazioni.<\/p>\n<p><\/p>\n<p>In PostgreSQL 12, the overhead of WAL records created by GiST, GIN, and SP-GiST indexes has been reduced. This offers several significant advantages: WAL records take up less disk space and data is restored more quickly, for instance, during recovery after a failure or point-in-time recovery. If you use such indexes in your applications (for example, geospatial applications heavily rely on the GiST index), this is another feature that will greatly enhance performance effortlessly on your part.<\/p>\n<p><\/p>\n<h3 id=\"sekcionirovanie--bolshe-luchshe-bystree\">Partizionamento \u2014 pi\u00f9, meglio, pi\u00f9 veloce<\/h3>\n<p><\/p>\n<p>In PostgreSQL 10 \u00e8 stato introdotto <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/ddl-partitioning.html\">il partizionamento dichiarativo<\/a><\/noindex>. In PostgreSQL 11 \u00e8 diventato molto pi\u00f9 semplice da utilizzare. In PostgreSQL 12 \u00e8 possibile modificare la scala delle sezioni.<\/p>\n<p><\/p>\n<p>In PostgreSQL 12, the performance of partitioning has significantly improved, especially when dealing with tables that have thousands of sections. For instance, if a query only touches a few sections in a table with thousands, it will execute much faster. The performance enhancement applies not only to such types of queries. You will also notice that INSERT operations in tables with many sections have become faster.<\/p>\n<p><\/p>\n<p>Data recording via <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/sql-copy.html\">COPY<\/a><\/noindex> \u2014 by the way, this is a great method for <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/fast-csv-and-json-ingestion-in-postgresql-with-copy\">bulk data loading<\/a><\/noindex> and here\u2019s an example of <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/fast-csv-and-json-ingestion-in-postgresql-with-copy\">using JSON<\/a><\/noindex> \u2014 has also become more efficient for partitioned tables in PostgreSQL 12. With COPY, the process was already fast, and in PostgreSQL 12, it's incredibly quick.<\/p>\n<p><\/p>\n<p>Thanks to these advantages, PostgreSQL can now store even larger datasets, and retrieving them has become easier. And there's no extra effort required from your side. If your application has many sections, for example, when it records time series data, a simple upgrade will significantly improve its performance.<\/p>\n<p><\/p>\n<p>Sebbene questo miglioramento non rientri esattamente nella categoria \"abbiamo aggiornato e siamo felici\", in PostgreSQL 12 \u00e8 ora possibile creare chiavi esterne che fanno riferimento a tabelle partizionate, rendendo il lavoro con la partizionalit\u00e0 un vero piacere.<\/p>\n<p><\/p>\n<h3 id=\"zaprosy-with-stali-gorazdo-luchshe\">Le query WITH sono notevolmente migliorate.<\/h3>\n<p><\/p>\n<p>Quando <noindex><a rel=\"nofollow\" href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commitdiff;h=608b167f9f9c4553c35bb1ec0eab9ddae643989b\">\u00e8 stata applicata una patch per le espressioni di tabella comuni integrate<\/a><\/noindex> (CTE, note anche come query WITH), non vedevo l'ora di scrivere un articolo su come gli sviluppatori di applicazioni con PostgreSQL <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/with-queries-present-future-common-table-expressions\">fossero entusiasti. Questa \u00e8 una di quelle funzionalit\u00e0 che velocizzeranno l'applicazione. A meno che, ovviamente, non utilizziate CTE.<\/a><\/noindex>. Spesso noto che i principianti in SQL amano usare CTE: se scritti in un certo modo, si ha davvero la sensazione di scrivere un programma imperativo. Personalmente, amavo riscrivere queste query per evitare<\/p>\n<p><\/p>\n<p>utilizzare CTE e migliorare le prestazioni. Ora tutto \u00e8 cambiato. <em>di<\/em> CTE e migliorare le prestazioni. Ora \u00e8 tutto diverso.<\/p>\n<p><\/p>\n<p>PostgreSQL 12 consente di incorporare un certo tipo di CTE senza effetti collaterali (<code>SELECT<\/code>), utilizzato solo una volta verso la fine della query. Se facessi delle statistiche sulle query con CTE che ho riscritto, la maggior parte di esse rientrerebbe in questa categoria. Questo aiuta gli sviluppatori a scrivere codice comprensibile che ora funziona anche rapidamente.<\/p>\n<p><\/p>\n<p>Inoltre, PostgreSQL 12 ottimizza automaticamente l'esecuzione delle SQL, non dovrai fare nulla. E sebbene ora probabilmente non dovr\u00f2 pi\u00f9 ottimizzare queste query, \u00e8 fantastico che PostgreSQL continui a lavorare sull'ottimizzazione delle query.<\/p>\n<p><\/p>\n<h3 id=\"just-in-time-jit--teper-po-umolchaniyu\">Just-in-Time (JIT) \u2014 ora per impostazione predefinita<\/h3>\n<p><\/p>\n<p>Nei sistemi PostgreSQL 12 con supporto <noindex><a rel=\"nofollow\" href=\"https:\/\/llvm.org\/\">LLVM<\/a><\/noindex> La compilazione JIT \u00e8 abilitata di default. Prima di tutto, ottieni il supporto <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/jit.html\">JIT<\/a><\/noindex> per alcune operazioni interne, e in secondo luogo, le query con espressioni (l'esempio pi\u00f9 semplice \u00e8 x + y) nelle selezioni (che hai dopo SELECT), aggregazioni, espressioni con clausole WHERE e altri possono utilizzare JIT per migliorare le prestazioni.<\/p>\n<p><\/p>\n<p>Con JIT abilitato in PostgreSQL 12 per impostazione predefinita, le prestazioni miglioreranno da sole, ma ti consiglio di testare l'applicazione in PostgreSQL 11, dove JIT \u00e8 stato introdotto, per misurare le prestazioni delle query e capire se sia necessario effettuare qualche configurazione.<\/p>\n<p><\/p>\n<h3 id=\"a-kak-zhe-ostalnye-novye-fichi-postgresql-12\">E per quanto riguarda le altre nuove funzionalit\u00e0 di PostgreSQL 12?<\/h3>\n<p><\/p>\n<p>In PostgreSQL 12 ci sono tantissime nuove funzionalit\u00e0 interessanti \u2014 dalla possibilit\u00e0 di interrogare dati JSON utilizzando le espressioni del percorso SQL\/JSON fino all'autenticazione multifattoriale con l'opzione <code>clientcert=verify-full<\/code>, colonne generate e molto altro. Meriterebbe un post a parte.<\/p>\n<p><\/p>\n<p>Proprio come PostgreSQL 10, PostgreSQL 12 aumenter\u00e0 le prestazioni generali subito dopo l'upgrade. Certamente puoi seguire il tuo percorso \u2014 testa l'applicazione in condizioni simili nel sistema di produzione prima di attivare le migliorie, come ho fatto io con PostgreSQL 10. Anche se PostgreSQL 12 \u00e8 gi\u00e0 pi\u00f9 stabile di quanto pensassi, non dimenticare di testare a fondo le applicazioni prima del rilascio in produzione.<\/p>\n<p>Fonte: <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 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"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\" \/>\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\/it\/blog\/administrirovanie\/apgrejd-dlya-lenivyh-kak-postgresql-12-povyshaet-proizvoditelnost\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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:description\" content=\"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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/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\udd47Aggiornamento per pigri: come PostgreSQL 12 migliora le prestazioni | ProHoster","description":"PostgreSQL 12, l'ultima versione della \"migliore database relazionale del mondo open source\", verr\u00e0 rilasciata tra un paio di settimane (se tutto va secondo i piani). Questo \u00e8 in linea con il consueto programma \u2014 una nuova versione con tantissime novit\u00e0 viene rilasciata ogni anno, e, a dire il vero, \u00e8 impressionante. \u00c8 per questo che sono diventato un attivo membro della comunit\u00e0 PostgreSQL. A mio avviso, a differenza di","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/apgrejd-dlya-lenivyh-kak-postgresql-12-povyshaet-proizvoditelnost","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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:description":"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","og:url":"https:\/\/prohoster.info\/it\/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"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/37975","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=37975"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/37975\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/28500"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=37975"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=37975"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=37975"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}