{"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\/ro\/blog\/administrirovanie\/apgrejd-dlya-lenivyh-kak-postgresql-12-povyshaet-proizvoditelnost","title":{"rendered":"Upgrade pentru lene\u0219i: cum PostgreSQL 12 \u00eembun\u0103t\u0103\u021be\u0219te performan\u021ba","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Upgrade pentru lene\u0219i: cum PostgreSQL 12 \u00eembun\u0103t\u0103\u021be\u0219te performan\u021ba\" 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>, ultima versiune a \u201ecele mai bune baze de date rela\u021bionale din lume cu cod surs\u0103 deschis\u201d va fi lansat\u0103 \u00een aproximativ dou\u0103 sau trei s\u0103pt\u0103m\u00e2ni (dac\u0103 totul decurge conform planului). Aceasta se aliniaz\u0103 cu programul obi\u0219nuit \u2014 o nou\u0103 versiune cu o mul\u021bime de noi func\u021bionalit\u0103\u021bi este lansat\u0103 o dat\u0103 pe an \u0219i, s\u0103 fim sinceri, este impresionant. De aceea am devenit un membru activ al comunit\u0103\u021bii PostgreSQL.<\/p>\n<p><\/p>\n<p>\u00cen opinia mea, spre deosebire de versiunile anterioare, PostgreSQL 12 nu con\u021bine una sau dou\u0103 func\u021bii revolu\u021bionare (precum, de exemplu, parti\u021bionarea sau paralelismul interog\u0103rilor). Am glumit odat\u0103 c\u0103 principala caracteristic\u0103 a PostgreSQL 12 este stabilitatea crescut\u0103. \u0218i, nu este acest lucru necesar atunci c\u00e2nd gestionezi date critice pentru afacerea ta?<\/p>\n<p><\/p>\n<p>\u00cens\u0103 PostgreSQL 12 nu se opre\u0219te aici: cu noile func\u021bionalit\u0103\u021bi \u0219i \u00eembun\u0103t\u0103\u021biri, aplica\u021biile vor func\u021biona mai bine, <em>iar de la tine se cere doar s\u0103 faci un upgrade!<\/em><\/p>\n<p><\/p>\n<p>(Poate, ar trebui s\u0103 reconstruie\u0219ti indexurile, dar \u00een aceast\u0103 versiune nu este la fel de complicat cum eram obi\u0219nui\u021bi.)<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Ar fi grozav \u2014 s\u0103 faci upgrade la PostgreSQL \u0219i s\u0103 te bucuri imediat de \u00eembun\u0103t\u0103\u021biri semnificative f\u0103r\u0103 prea multe eforturi. Cu c\u00e2\u021biva ani \u00een urm\u0103, am analizat actualizarea de la PostgreSQL 9.4 la PostgreSQL 10 \u0219i am observat cum aplica\u021bia a accelerat datorit\u0103 \u00eembun\u0103t\u0103\u021birii paralelismului interog\u0103rilor \u00een PostgreSQL 10. \u0218i, cel mai important, nu mi s-a cerut aproape nimic (doar s\u0103 setez parametrul de configurare <code>max_parallel_workers<\/code>).<\/p>\n<p><\/p>\n<p>Este convenabil, nu-i a\u0219a, c\u00e2nd aplica\u021biile func\u021bioneaz\u0103 mai bine imediat dup\u0103 upgrade. \u0218i ne str\u0103duim foarte mult s\u0103 \u00eenc\u00e2nt\u0103m utilizatorii, deoarece la PostgreSQL num\u0103rul lor cre\u0219te constantly.<\/p>\n<p><\/p>\n<p>\u0218i cum va face un simplu upgrade la PostgreSQL 12 s\u0103 fii fericit? \u00ce\u021bi voi explica acum.<\/p>\n<p><\/p>\n<h3 id=\"sereznye-uluchsheniya-indeksirovaniya\">\u00cembun\u0103t\u0103\u021biri serioase ale index\u0103rii<\/h3>\n<p><\/p>\n<p>F\u0103r\u0103 indexare, baza de date nu va merge prea departe. Cum altfel s\u0103 g\u0103sim rapid informa\u021biile? Sistemul fundamental de indexare PostgreSQL se nume\u0219te <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/B-tree\">B-tree<\/a><\/noindex>. Acest tip de index este optimizat pentru sistemele de stocare.<\/p>\n<p><\/p>\n<p>Folosim pur \u0219i simplu operatorul <code>CREATE INDEX ON some_table (some_column)<\/code>, iar PostgreSQL face toat\u0103 munca grea pentru a men\u021bine indexul actualizat, \u00een timp ce noi continu\u0103m s\u0103 inser\u0103m, actualiz\u0103m \u0219i s\u0103 elimin\u0103m valori. Totul func\u021bioneaz\u0103 de la sine, ca prin magie.<\/p>\n<p><\/p>\n<p>Dar indexurile PostgreSQL au o problem\u0103 \u2014 ele <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/checking-for-postgresql-bloat\">se umfl\u0103<\/a><\/noindex> \u0219i ocup\u0103 spa\u021biu inutil pe disc, iar performan\u021ba extragerii \u0219i actualiz\u0103rii datelor scade. Prin \u201eumflare\u201d m\u0103 refer la men\u021binerea ineficient\u0103 a structurii indexului. Aceasta poate fi \u2014 dar nu trebuie s\u0103 fie \u2014 legat\u0103 de tuplurile de gunoi care sunt eliminate <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/sql-vacuum.html\">VACUUM<\/a><\/noindex> (mul\u021bumiri pentru informa\u021bii lui Peter Geoghegan (<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/petervgeoghegan\">Peter Geoghegan<\/a><\/noindex>)). Umflarea indexului este deosebit de evident\u0103 \u00een sarcinile de lucru \u00een care indexul este modificat activ.<\/p>\n<p><\/p>\n<p>PostgreSQL 12 \u00eembun\u0103t\u0103\u021be\u0219te semnificativ func\u021bionarea indicilor de tip B-tree, iar experimentele cu teste de tip TPC-C au ar\u0103tat c\u0103 acum se folose\u0219te, \u00een medie, cu 40% mai pu\u021bin spa\u021biu. Acum consum\u0103m mai pu\u021bin timp nu doar pentru \u00eentre\u021binerea indicilor de tip B-tree (adic\u0103 pentru opera\u021biile de scriere), ci \u0219i pentru extragerea datelor, deoarece indicii au devenit mult mai mici.<\/p>\n<p><\/p>\n<p>Aplica\u021biile care \u00ee\u0219i actualizeaz\u0103 activ tabelele \u2014 de obicei sunt aplica\u021bii OLTP (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Online_transaction_processing\">prelucrarea tranzac\u021biilor \u00een timp real<\/a><\/noindex>) \u2014 vor utiliza mult mai eficient discul \u0219i vor prelucra cererile. Cu c\u00e2t este mai mult spa\u021biu pe disc, cu at\u00e2t baza de date are mai mult\u0103 capacitate de cre\u0219tere f\u0103r\u0103 a upgradui infrastructura.<\/p>\n<p><\/p>\n<p>Anumite strategii de upgrade necesit\u0103 reconstruirea indicilor de tip B-tree pentru a profita de aceste avantaje (de exemplu, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/pgupgrade.html\">pg_upgrade<\/a><\/noindex> nu va reconstrui indicii automat). \u00cen versiunile anterioare de PostgreSQL, reconstruirea indicilor mari \u00een tabele ducea la timp de nefunc\u021bionare semnificativ, deoarece \u00een acest timp nu se puteau face modific\u0103ri. Dar \u00een PostgreSQL 12 exist\u0103 o alt\u0103 caracteristic\u0103 interesant\u0103: acum se pot reconstrui indicii \u00een paralel cu comanda <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/12\/sql-reindex.html\">REINDEX CONCURRENTLY<\/a><\/noindex>, pentru a evita complet nefunc\u021bionarea.<\/p>\n<p><\/p>\n<p>\u00cen PostgreSQL 12 exist\u0103 \u0219i alte \u00eembun\u0103t\u0103\u021biri ale infrastructurii de indexare. O alt\u0103 chestiune, unde nu au lipsit trucurile, este <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/wal-intro.html\">jurnalul de scriere anticipat\u0103<\/a><\/noindex>, cunoscut \u0219i sub denumirea de WAL (write-ahead log). Jurnalul de scriere anticipat\u0103 \u00eenregistreaz\u0103 fiecare tranzac\u021bie din PostgreSQL pentru cazul unei defec\u021biuni \u0219i pentru replicare. Aplica\u021biile \u00eel folosesc pentru arhivare \u0219i <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/pgbackrest-point-in-time-recovery-using-crunchy-postgresql-operator\">restaurare la un moment dat<\/a><\/noindex>. Desigur, jurnalul de scriere anticipat\u0103 este scris pe disc, ceea ce poate afecta performan\u021ba.<\/p>\n<p><\/p>\n<p>\u00cen PostgreSQL 12, costurile \u00eenregistr\u0103rilor WAL create de indec\u0219ii GiST, GIN \u0219i SP-GiST la construirea unui index au fost reduse. Aceasta ofer\u0103 c\u00e2teva avantaje semnificative: \u00eenregistr\u0103rile WAL ocup\u0103 mai pu\u021bin spa\u021biu pe disc, iar datele sunt reproduce\u021bi mai repede, de exemplu, \u00een timpul recuper\u0103rii dup\u0103 o defec\u021biune sau a restaur\u0103rii la un moment dat. Dac\u0103 utiliza\u021bi astfel de indec\u0219i \u00een aplica\u021biile dvs. (de exemplu, aplica\u021biile geospa\u021biale bazate pe PostGIS folosesc mult indexul GiST), aceasta este o alt\u0103 func\u021bionalitate care va \u00eembun\u0103t\u0103\u021bi semnificativ performan\u021ba f\u0103r\u0103 a necesita eforturi din partea dvs.<\/p>\n<p><\/p>\n<h3 id=\"sekcionirovanie--bolshe-luchshe-bystree\">Parti\u021bionarea \u2014 mai mult, mai bine, mai rapid<\/h3>\n<p><\/p>\n<p>\u00cen PostgreSQL 10 a ap\u0103rut <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/ddl-partitioning.html\">parti\u021bionarea declarativ\u0103<\/a><\/noindex>. \u00cen PostgreSQL 11, a devenit mult mai u\u0219or de utilizat. \u00cen PostgreSQL 12, se poate schimba scala sec\u021biunilor.<\/p>\n<p><\/p>\n<p>\u00cen PostgreSQL 12, performan\u021ba sistemului de parti\u021bionare a devenit semnificativ mai bun\u0103, mai ales dac\u0103 \u00een tabel exist\u0103 mii de sec\u021biuni. De exemplu, dac\u0103 o interogare afecteaz\u0103 doar c\u00e2teva sec\u021biuni \u00eentr-un tabel cu mii de sec\u021biuni, va fi executat\u0103 mult mai repede. Performan\u021ba a fost \u00eembun\u0103t\u0103\u021bit\u0103 nu doar pentru acest tip de interog\u0103ri. Ve\u021bi observa, de asemenea, c\u00e2t de mult s-au accelerat opera\u021biile INSERT \u00een tabelele cu multe sec\u021biuni.<\/p>\n<p><\/p>\n<p>\u00cenc\u0103rcarea datelor prin <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/sql-copy.html\">COPIE<\/a><\/noindex> \u2014 de altfel, este o modalitate excelent\u0103 <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/fast-csv-and-json-ingestion-in-postgresql-with-copy\">de \u00eenc\u0103rcare \u00een mas\u0103 a datelor<\/a><\/noindex> \u0219i iat\u0103 un exemplu <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/fast-csv-and-json-ingestion-in-postgresql-with-copy\">de preluare JSON<\/a><\/noindex> \u2014 \u00een tabelele parti\u021bionate din PostgreSQL 12 a devenit, de asemenea, mai eficient. Cu COPY era deja rapid, iar \u00een PostgreSQL 12 este pur \u0219i simplu fulger\u0103tor.<\/p>\n<p><\/p>\n<p>Datorit\u0103 acestor avantaje, \u00een PostgreSQL pot fi stocate seturi de date \u0219i mai mari, iar extragerea lor a devenit mai simpl\u0103. \u0218i f\u0103r\u0103 niciun efort din partea dvs. Dac\u0103 aplica\u021bia are multe sec\u021biuni, de exemplu, aceasta \u00eenregistreaz\u0103 date de serii temporale, o simpl\u0103 actualizare va \u00eembun\u0103t\u0103\u021bi semnificativ performan\u021ba sa.<\/p>\n<p><\/p>\n<p>\u0218i de\u0219i aceast\u0103 \u00eembun\u0103t\u0103\u021bire nu face parte din categoria \u201eam actualizat \u0219i ne bucur\u0103m\u201d, \u00een PostgreSQL 12, se pot crea chei externe care fac referire la tabelele parti\u021bionate, astfel \u00eenc\u00e2t lucrul cu parti\u021bionarea s\u0103 fie o pl\u0103cere.<\/p>\n<p><\/p>\n<h3 id=\"zaprosy-with-stali-gorazdo-luchshe\">Interog\u0103rile WITH au devenit mult mai bune<\/h3>\n<p><\/p>\n<p>C\u00e2nd <noindex><a rel=\"nofollow\" href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commitdiff;h=608b167f9f9c4553c35bb1ec0eab9ddae643989b\">a fost aplicat un patch pentru expresiile de tabel generice \u00eencorporate<\/a><\/noindex> (de asemenea, CTE, cunoscute \u0219i sub numele de interog\u0103ri WITH), abia a\u0219teptam s\u0103 scriu un articol despre asta, <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/with-queries-present-future-common-table-expressions\">c\u00e2t de \u00eenc\u00e2nta\u021bi au fost dezvoltatorii de aplica\u021bii de PostgreSQL<\/a><\/noindex>. Aceasta este una dintre acele caracteristici care vor accelera aplica\u021bia. Dac\u0103, desigur, folosi\u021bi CTE.<\/p>\n<p><\/p>\n<p>Observ c\u0103 adesea \u00eencep\u0103torii \u00een SQL iubesc s\u0103 foloseasc\u0103 CTE: dac\u0103 le scrii \u00eentr-un anumit mod, sim\u021bi c\u0103 scrii un program imperativ. Personal, \u00eemi pl\u0103cea s\u0103 rescriu aceste interog\u0103ri pentru a le face <em>f\u0103r\u0103<\/em> CTE \u0219i pentru a cre\u0219te performan\u021ba. Acum, lucrurile stau altfel.<\/p>\n<p><\/p>\n<p>PostgreSQL 12 permite \u00eencorporarea unui anumit tip de CTE f\u0103r\u0103 efecte secundare (<code>SELECT<\/code>), care este folosit o singur\u0103 dat\u0103, mai aproape de finalul interog\u0103rii. Dac\u0103 a\u0219 fi \u021binut statistici cu interog\u0103rile CTE pe care le-am rescris, majoritatea ar fi intrat \u00een aceast\u0103 categorie. Acest lucru ajut\u0103 dezvoltatorii s\u0103 scrie un cod clar, care acum func\u021bioneaz\u0103 \u0219i rapid.<\/p>\n<p><\/p>\n<p>Mai mult, PostgreSQL 12 optimizeaz\u0103 executarea SQL singur, nu va trebui s\u0103 faci nimic. \u0218i de\u0219i acum probabil nu voi mai avea nevoie s\u0103 optimiz\u0103m astfel de interog\u0103ri, e minunat c\u0103 PostgreSQL continu\u0103 s\u0103 lucreze la optimizarea interog\u0103rilor.<\/p>\n<p><\/p>\n<h3 id=\"just-in-time-jit--teper-po-umolchaniyu\">Just-in-Time (JIT) \u2014 acum este activat \u00een mod implicit<\/h3>\n<p><\/p>\n<p>\u00cen sistemele PostgreSQL 12 cu suport pentru <noindex><a rel=\"nofollow\" href=\"https:\/\/llvm.org\/\">LLVM<\/a><\/noindex> compilarea JIT este activat\u0103 \u00een mod implicit. \u00cen primul r\u00e2nd, ob\u021bii suport pentru <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/jit.html\">JIT<\/a><\/noindex> pentru unele opera\u021biuni interne, iar \u00een al doilea r\u00e2nd, interog\u0103rile cu expresii (cel mai simplu exemplu \u2014 x + y) din listele de selec\u021bie (care sunt dup\u0103 SELECT), agregate, expresii cu clauze WHERE \u0219i altele pot folosi JIT pentru a \u00eembun\u0103t\u0103\u021bi performan\u021ba.<\/p>\n<p><\/p>\n<p>Dat fiind c\u0103 JIT este activat \u00een PostgreSQL 12 \u00een mod implicit, performan\u021ba se va \u00eembun\u0103t\u0103\u021bi de la sine, dar \u00ee\u021bi recomand s\u0103 testezi aplica\u021bia \u00een PostgreSQL 11, unde JIT a ap\u0103rut pentru prima dat\u0103, pentru a m\u0103sura performan\u021ba interog\u0103rilor \u0219i a afla dac\u0103 trebuie s\u0103 ajustezi ceva.<\/p>\n<p><\/p>\n<h3 id=\"a-kak-zhe-ostalnye-novye-fichi-postgresql-12\">Dar ce zici de celelalte caracteristici noi din PostgreSQL 12?<\/h3>\n<p><\/p>\n<p>PostgreSQL 12 are o mul\u021bime de caracteristici noi interesante \u2014 de la posibilitatea de a explora datele JSON folosind expresii SQL\/JSON standard p\u00e2n\u0103 la autentificarea multi-factor cu parametru <code>clientcert=verify-full<\/code>, coloane generate \u0219i multe altele. E suficient pentru un post separat.<\/p>\n<p><\/p>\n<p>Ca \u0219i PostgreSQL 10, PostgreSQL 12 va \u00eembun\u0103t\u0103\u021bi performan\u021ba general\u0103 imediat dup\u0103 upgrade. Desigur, po\u021bi avea propria ta metod\u0103 \u2014 testeaz\u0103 aplica\u021bia \u00een condi\u021bii similare \u00een sistemul de produc\u021bie \u00eenainte de a activa \u00eembun\u0103t\u0103\u021birile, a\u0219a cum am f\u0103cut eu cu PostgreSQL 10. Chiar dac\u0103 PostgreSQL 12 este deja mai stabil dec\u00e2t m\u0103 a\u0219teptam, nu te lenevi s\u0103 testezi aplica\u021biile cu aten\u021bie \u00eenainte de a le lansa \u00een produc\u021bie.<\/p>\n<p>Sursa: <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.2.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\/ro\/blog\/administrirovanie\/apgrejd-dlya-lenivyh-kak-postgresql-12-povyshaet-proizvoditelnost\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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 pentru cei lene\u0219i: cum PostgreSQL 12 \u00eembun\u0103t\u0103\u021be\u0219te performan\u021ba | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/apgrejd-dlya-lenivyh-kak-postgresql-12-povyshaet-proizvoditelnost","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/37975","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=37975"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/37975\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/28500"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=37975"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=37975"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=37975"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}