{"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\/et\/blog\/administrirovanie\/apgrejd-dlya-lenivyh-kak-postgresql-12-povyshaet-proizvoditelnost","title":{"rendered":"Uuendus laiskadele: kuidas PostgreSQL 12 parandab j\u00f5udlust","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Uuendus laiskadele: kuidas PostgreSQL 12 parandab j\u00f5udlust\" 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>, viimane versioon \u00abmaailma parimast avatud l\u00e4htekoodiga relatiivsest andmebaasist\u00bb ilmub paar-kolm n\u00e4dalat p\u00e4rast (kui k\u00f5ik l\u00e4heb plaanip\u00e4raselt). See vastab tavap\u00e4rasele ajakavale \u2014 uus versioon, mis pakub hulgaliselt uusi v\u00f5imalusi, ilmub kord aastas ja, ausalt \u00f6eldes, see on muljetavaldav. Seet\u00f5ttu olen ma aktiivne PostgreSQL kogukonna liige.<\/p>\n<p><\/p>\n<p>Minu arvates ei sisalda PostgreSQL 12, erinevalt varasematest versioonidest, \u00fchtegi revolutsioonilist funktsiooni (nagu n\u00e4iteks sektsioneerimine v\u00f5i p\u00e4ringute paralleelsus). Ma naljatasin, et PostgreSQL 12 peaesineja on suurem stabiilsus. Ja kas see ei ole see, mida vajate, kui haldate oma \u00e4ri kriitilisi andmeid?<\/p>\n<p><\/p>\n<p>Kuid PostgreSQL 12 ei piirdu sellega: uute v\u00f5imaluste ja t\u00e4iustustega t\u00f6\u00f6tavad rakendused paremini, <em>ja teie ainus \u00fclesanne on teha uuendus!<\/em><\/p>\n<p><\/p>\n<p>(Noh, v\u00f5ib-olla tuleb indekseid \u00fcmber ehitada, kuid selles versioonis ei ole see nii hirmus, nagu oleme harjunud.)<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>See oleks suurep\u00e4rane \u2014 uuendada PostgreSQL ja nautida kohe m\u00e4rkimisv\u00e4\u00e4rseid t\u00e4iustusi ilma liigsete pingutusteta. M\u00f5ned aastad tagasi anal\u00fc\u00fcsisin \u00fcleminekut PostgreSQL 9.4-lt PostgreSQL 10-le ja n\u00e4gin, kuidas rakendus kiirenes t\u00e4nu PostgreSQL 10 t\u00e4iustatud p\u00e4ringute paralleelsusele. Ja mis k\u00f5ige t\u00e4htsam, minult peaaegu ei olnud midagi vaja (ainult m\u00e4\u00e4rata konfiguratsiooni parameeter <code>max_parallel_workers<\/code>).<\/p>\n<p><\/p>\n<p>Olge n\u00f5us, et on mugav, kui kohe p\u00e4rast uuendust t\u00f6\u00f6tavad rakendused paremini. Me pingutame palju, et meie kasutajad oleksid rahul, sest PostgreSQL kasutajate arv kasvab.<\/p>\n<p><\/p>\n<p>Ja kuidas teeb lihtne uuendus PostgreSQL 12 teid \u00f5nnelikuks? R\u00e4\u00e4gin sellest kohe.<\/p>\n<p><\/p>\n<h3 id=\"sereznye-uluchsheniya-indeksirovaniya\">Olulised t\u00e4iustused indekseerimises<\/h3>\n<p><\/p>\n<p>Ilma indekseerimiseta ei vii andmebaas kaugele. Kuidas muidu kiiresti teavet leida? PostgreSQL p\u00f5hindekseerimis\u00fcsteem on <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/B-tree\">B-puu<\/a><\/noindex>. See indeksi t\u00fc\u00fcp on optimeeritud salvestuss\u00fcsteemide jaoks.<\/p>\n<p><\/p>\n<p>Me kasutame lihtsalt operaatorit <code>CREATE INDEX ON some_table (some_column)<\/code>, ja PostgreSQL teeb suure t\u00f6\u00f6 indeksi ajakohasena hoidmiseks, kui me pidevalt lisame, uuendame ja kustutame v\u00e4\u00e4rtusi. K\u00f5ik t\u00f6\u00f6tab iseenesest, nagu maagia.<\/p>\n<p><\/p>\n<p>Kuid PostgreSQL indeksitel on \u00fcks probleem \u2014 nad <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/checking-for-postgresql-bloat\">paisuvad<\/a><\/noindex> ja v\u00f5tavad kettal liigse ruumi ning andmete v\u00e4ljav\u00f5tmise ja uuendamise j\u00f5udlus langeb. All \"paisutamise\" m\u00f5tlen ma ebaefektiivset indekstruktuuri hooldamist. See v\u00f5ib olla \u2014 v\u00f5i mitte olla \u2014 seotud pr\u00fcgi tuple\u2019ite, mida eemaldatakse. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/sql-vacuum.html\">VACUUM<\/a><\/noindex> (t\u00e4nud teabe eest Peter Geogheganile (<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/petervgeoghegan\">Peter Geoghegan<\/a><\/noindex>)). Indeksi paisutamine on eriti m\u00e4rgatav t\u00f6\u00f6koormustes, kus indeksit muudetakse aktiivselt.<\/p>\n<p><\/p>\n<p>PostgreSQL 12 t\u00f5hustab B-puu indeksite toimimist oluliselt, ja TPC-C t\u00fc\u00fcpi testidega katsetamine on n\u00e4idanud, et ruumi kasutatakse n\u00fc\u00fcd keskmiselt 40% v\u00e4hem. N\u00fc\u00fcd kulutame v\u00e4hem aega mitte ainult B-puu indeksite hooldamiseks (st kirjete jaoks m\u00f5eldud toimingutele), vaid ka andmete v\u00e4ljav\u00f5tmiseks, kuna indeksid on n\u00fc\u00fcd palju v\u00e4iksemad.<\/p>\n<p><\/p>\n<p>Rakendused, mis uuendavad oma tabeleid aktiivselt \u2014 tavaliselt OLTP rakendused (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Online_transaction_processing\">reaalaja tehingute t\u00f6\u00f6tlemine<\/a><\/noindex>) \u2014 kasutavad ketast palju efektiivsemalt ja t\u00f6\u00f6tlevad p\u00e4ringuid. Mida rohkem kettal ruumi on, seda rohkem on andmebaasil kasvu ruumi ilma infrastruktuuri uuendamiseta.<\/p>\n<p><\/p>\n<p>M\u00f5ned uuendustegevuse strateegiad n\u00f5uavad B-puu indeksite taastamist nende eeliste kasutamiseks (n\u00e4iteks, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/pgupgrade.html\">pg_upgrade<\/a><\/noindex> ei taasta indekseid automaatselt). Varasemates PostgreSQL versioonides p\u00f5hjustas suurte indexite taastamine tabelites m\u00e4rkimisv\u00e4\u00e4rse seisaku, kuna sel ajal ei saanud muudatusi teha. Kuid PostgreSQL 12-s on veel \u00fcks \u00e4ge funktsioon: indekseid saab n\u00fc\u00fcd taastada paralleelselt k\u00e4suga <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/12\/sql-reindex.html\">REINDEX CONCURRENTLY<\/a><\/noindex>, et t\u00e4ielikult v\u00e4ltida seisaku tekkimist.<\/p>\n<p><\/p>\n<p>PostgreSQL 12-s on ka teisi indekstruktuuri infrastruktuuri t\u00e4iustusi. Veel \u00fcks asi, kus ei j\u00e4\u00e4nud ilma v\u00f5luta \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/wal-intro.html\">ennustava kirjutamise \u017eurnali<\/a><\/noindex>, tuntud ka kui WAL (write-ahead log). Eelnevat kirje ajalugu registreerib iga tehingu PostgreSQL-is rikka t\u00f5rke- ja replikaatimise juhtimiseks. Rakendused kasutavad seda arhiivimiseks ja <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/pgbackrest-point-in-time-recovery-using-crunchy-postgresql-operator\">taastamiseks teatud hetkel<\/a><\/noindex>. Loomulikult toimub eelneva kirje ajalugu kettale, mis v\u00f5ib m\u00f5jutada j\u00f5udlust.<\/p>\n<p><\/p>\n<p>PostgreSQL 12 v\u00e4hendas WAL-kirjete kulusid, mida GiST-, GIN- ja SP-GiST-indeksite loomisel genereeritakse. See toob endaga kaasa mitu k\u00e4egakatsutavat eelist: WAL-kirjed v\u00f5tavad v\u00e4hem ruumi kettal ning andmete taastamine, n\u00e4iteks p\u00e4rast t\u00f5rget v\u00f5i aegahetke taastamisel, on kiirem. Kui kasutate oma rakendustes selliseid indekseid (n\u00e4iteks georuumilised rakendused, mis p\u00f5hinevad PostGIS-il, kasutavad sageli GiST-indeksit), on see veel \u00fcks funktsioon, mis parandab oluliselt t\u00f6\u00f6 t\u00f5husust teie pingutusteta.<\/p>\n<p><\/p>\n<h3 id=\"sekcionirovanie--bolshe-luchshe-bystree\">Jaotamine \u2013 rohkem, parem, kiirem<\/h3>\n<p><\/p>\n<p>PostgreSQL 10-s toodi sisse <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/ddl-partitioning.html\">deklaratiivne jaotamine<\/a><\/noindex>. PostgreSQL 11-s muutus selle kasutamine palju lihtsamaks. PostgreSQL 12-s on v\u00f5imalik jaotuse mastaapi muuta.<\/p>\n<p><\/p>\n<p>PostgreSQL 12-s on jaotuss\u00fcsteemi j\u00f5udlus m\u00e4rkimisv\u00e4\u00e4rselt paranenud, eriti kui tabelis on tuhandeid jaotusi. N\u00e4iteks, kui p\u00e4ring k\u00e4sitleb vaid m\u00f5nda jaotust tabelis, kus neid on tuhandeid, siis t\u00e4idetakse see palju kiiremini. J\u00f5udlus on paranenud mitte ainult selliste p\u00e4ringute puhul. Samuti m\u00e4rkate, kui on kiirenetud INSERT-toimingud tabelites, kus on palju jaotusi.<\/p>\n<p><\/p>\n<p>Andmete salvestamine kasutades <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/sql-copy.html\">COPY<\/a><\/noindex> \u2014 muide, see on suurep\u00e4rane meetod <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/fast-csv-and-json-ingestion-in-postgresql-with-copy\">massiliseks andmete laadimiseks<\/a><\/noindex> ja siin on n\u00e4ide <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/fast-csv-and-json-ingestion-in-postgresql-with-copy\">JSON-vastuv\u00f5tust<\/a><\/noindex> \u2014 ja jaotatud tabelitesse PostgreSQL 12-s toimib see samuti t\u00f5husamalt. COPY tegemine oli juba kiire, aga PostgreSQL 12-s on see t\u00e4iesti lendav.<\/p>\n<p><\/p>\n<p>Nende eeliste t\u00f5ttu saab PostgreSQL-s hoida veel suuremaid andmekogumeid ja nende v\u00e4ljav\u00f5tmine on muutunud lihtsamaks. Ja te ei pea selle nimel pingutama. Kui rakendusel on palju jaotusi, n\u00e4iteks see salvestab ajareal p\u00f5hinevaid andmeid, siis lihtne uuendus parandab oluliselt selle j\u00f5udlust.<\/p>\n<p><\/p>\n<p>Ja kuigi see t\u00e4iustamine ei kuulu just kategooriasse \u201euuendame ja oleme \u00f5nnelikud\u201c, on PostgreSQL 12-s v\u00f5imalik luua v\u00e4lish v\u00f5tmeid, mis viitavad jaotatud tabelitele, et jaotamisega tegelemine oleks nauditav.<\/p>\n<p><\/p>\n<h3 id=\"zaprosy-with-stali-gorazdo-luchshe\">WITH p\u00e4ringud on muutunud palju paremaks<\/h3>\n<p><\/p>\n<p>Kui <noindex><a rel=\"nofollow\" href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commitdiff;h=608b167f9f9c4553c35bb1ec0eab9ddae643989b\">on rakendatud plaastri sisseehitatud \u00fcldiste tabelite v\u00e4ljenditele<\/a><\/noindex> (need on CTE-d, Need on WITH p\u00e4ringud), ma ei j\u00f5udnud \u00e4ra oodata, et kirjutada artikkel sellest, <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/with-queries-present-future-common-table-expressions\">kui r\u00f5\u00f5msad olid rakenduse arendajad PostgreSQL-i puhul<\/a><\/noindex>. See on \u00fcks neist funktsioonidest, mis kiirendavad rakendust. Kui muidugi kasutate CTE-d.<\/p>\n<p><\/p>\n<p>Ma sageli m\u00e4rkan, et algajad SQL-is armastavad kasutada CTE-d: kui neid kirjutada kindlal viisil, tunned t\u00f5eliselt, et kirjutad imperatiivset programmi. Isiklikult meeldis mulle neid p\u00e4ringuid \u00fcmber kirjutada, et v\u00e4hendada <em>ilma<\/em> CTE-d ja suurendada j\u00f5udlust. Praegu on olukord teine.<\/p>\n<p><\/p>\n<p>PostgreSQL 12 v\u00f5imaldab teatud t\u00fc\u00fcpi CTE-d sisestada ilma k\u00f5rvaltoimeteta (<code>SELECT<\/code>), mida kasutatakse ainult korra, l\u00e4hedal p\u00e4ringu l\u00f5pule. Kui ma oleksin pidanud statistikat CTE-p\u00e4ringute kohta, mida ma \u00fcmber kirjutasin, siis enamik neist kuuluks sellesse kategooriasse. See aitab arendajatel kirjutada arusaadavat koodi, mis n\u00fc\u00fcd t\u00f6\u00f6tab veel kiiremini.<\/p>\n<p><\/p>\n<p>Veelgi enam, PostgreSQL 12 optimeerib SQL-i t\u00e4itmist automaatselt, te ei pea midagi tegema. Ja kuigi n\u00fc\u00fcd on ilmselt mul vaja neid p\u00e4ringuid optimeerida, on tore, et PostgreSQL j\u00e4tkab p\u00e4ringute optimeerimise kallal t\u00f6\u00f6tamist.<\/p>\n<p><\/p>\n<h3 id=\"just-in-time-jit--teper-po-umolchaniyu\">Just-in-Time (JIT) \u2014 n\u00fc\u00fcd vaikimisi<\/h3>\n<p><\/p>\n<p>PostgreSQL 12 s\u00fcsteemides, kus on tugi <noindex><a rel=\"nofollow\" href=\"https:\/\/llvm.org\/\">LLVM<\/a><\/noindex> JIT-kompileerimine on vaikimisi lubatud. Esiteks saate toe <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/jit.html\">JIT<\/a><\/noindex> teatud sisemiste operatsioonide jaoks, ja teiseks saavad v\u00e4ljendid p\u00e4ringutes (lihtsaim n\u00e4ide \u2014 x + y) valikuloendis (mis on teie SELECT-i j\u00e4rel), agregaatide, WHERE-lause v\u00e4ljendite ja muude jaoks kasutada JIT-i j\u00f5udluse suurendamiseks.<\/p>\n<p><\/p>\n<p>Kuna JIT on PostgreSQL 12-s vaikimisi lubatud, paranenud j\u00f5udlus, kuid soovitan testida rakendust PostgreSQL 11-s, kus JIT alles ilmus, et m\u00f5\u00f5ta p\u00e4ringute j\u00f5udlust ja teada saada, kas midagi peab seadistama.<\/p>\n<p><\/p>\n<h3 id=\"a-kak-zhe-ostalnye-novye-fichi-postgresql-12\">Aga mis on PostgreSQL 12 muud uued funktsioonid?<\/h3>\n<p><\/p>\n<p>PostgreSQL 12-s on hulgaliselt uusi toredaid funktsioone \u2014 alates v\u00f5imalusest uurida JSON-andmeid standardsete SQL\/JSON marsruutimise v\u00e4ljendite abil kuni mitme teguri autentimiseni parameetriga <code>clientcert=verify-full<\/code>, genereeritud veergude ja muu hulga asjadeni. Sellega j\u00e4tkub \u00fchte postitust.<\/p>\n<p><\/p>\n<p>Nagu PostgreSQL 10, suurendab PostgreSQL 12 \u00fcldist j\u00f5udlust kohe p\u00e4rast uuendamist. Teil v\u00f5ib loomulikult olla oma tee \u2014 testige rakendust sarnastes tingimustes tootmis\u00fcsteemis, enne kui aktiveerite t\u00e4iustused, nagu tegin mina PostgreSQL 10-ga. Isegi kui PostgreSQL 12 on juba praegu stabiilsem, kui ma ette kujutasin, \u00e4rge laske laisel testida rakendusi kvaliteetselt, enne kui need tootmisse viia.<\/p>\n<p>Allikas: <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\/et\/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=\"et_EE\" \/>\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\/et\/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\udd47Uuendus laiskadele: kuidas PostgreSQL 12 suurendab j\u00f5udlust | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/apgrejd-dlya-lenivyh-kak-postgresql-12-povyshaet-proizvoditelnost","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\/et\/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\/et\/wp-json\/wp\/v2\/posts\/37975","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=37975"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/37975\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/28500"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=37975"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=37975"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=37975"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}