{"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":"Mugandused laiskadele: kuidas PostgreSQL 12 t\u00f5stab j\u00f5udlust","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Mugandused laiskadele: kuidas PostgreSQL 12 t\u00f5stab 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 \"parimast avatud l\u00e4htekoodiga relatsioonilisest andmebaasist maailmas\" ilmub paar n\u00e4dalat (kui k\u00f5ik l\u00e4heb plaanip\u00e4raselt). See vastab tavap\u00e4rasele graafikule \u2014 uus versioon, kus on hulgaliselt uusi v\u00f5imalusi, ilmub kord aastas, ja ausalt \u00f6eldes, see on muljetavaldav. Seet\u00f5ttu olen mina ka aktiivne PostgreSQL kogukonna liige.<\/p>\n<p><\/p>\n<p>Minu arvates, erinevalt eelmiste v\u00e4ljaannetest, ei sisalda PostgreSQL 12 \u00fchtegi revolutsioonilist funktsiooni (nagu n\u00e4iteks sektsioonimine v\u00f5i p\u00e4ringute paralleelne t\u00f6\u00f6tlemine). Ma naljatasin kunagi, et PostgreSQL 12 peamine eelis on suurem stabiilsus. Kas just seda ei vajata, kui hallatakse teie \u00e4ri kriitilisi andmeid?<\/p>\n<p><\/p>\n<p>Aga PostgreSQL 12 ei piirdu sellega: uute v\u00f5imaluste ja t\u00e4iustustega t\u00f6\u00f6tavad rakendused paremini, <em>ja teie peate lihtsalt uuendama!<\/em><\/p>\n<p><\/p>\n<p>(Noh, v\u00f5ib-olla tuleb veel indeksid uuesti \u00fcles ehitada, kuid k\u00e4esolevas v\u00e4ljalaskes ei ole see nii hirmutav, kui oleme harjunud.)<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Oleks, et oleks suurep\u00e4rane \u2014 uuendada PostgreSQL-i ja nautida kohe m\u00e4rkimisv\u00e4\u00e4rseid parandusi ilma liigsete pingutusteta. M\u00f5ned aastad tagasi anal\u00fc\u00fcsisin v\u00e4rskendust PostgreSQL 9.4 versioonilt PostgreSQL 10-le ning n\u00e4gin, kui palju kiirus paraneb t\u00e4nu parematele p\u00e4ringute paralleelsusele PostgreSQL 10-s. Ja mis k\u00f5ige t\u00e4htsam, see ei n\u00f5udnud minult peaaegu midagi (sain lihtsalt m\u00e4\u00e4rata konfiguratsiooniparametri <code>max_parallel_workers<\/code>).<\/p>\n<p><\/p>\n<p>Olge n\u00f5us, et on mugav, kui rakendused hakkavad p\u00e4rast v\u00e4rskendamist kohe paremini toimima. Me pingutame t\u00f5eliselt, et kasutajaid r\u00f5\u00f5mustada, sest PostgreSQL-i kasutajad kasvavad j\u00e4rjest rohkem.<\/p>\n<p><\/p>\n<p>Ja kuidas lihtne uuendus PostgreSQL 12-le teid \u00f5nnelikuks teeb? Selgitan n\u00fc\u00fcd.<\/p>\n<p><\/p>\n<h3 id=\"sereznye-uluchsheniya-indeksirovaniya\">Olulised edusammud indekseerimises<\/h3>\n<p><\/p>\n<p>Ilma indekseerimiseta ei p\u00e4\u00e4se andmebaas kaugele. Kuidas muidu kiiresti teavet leida? PostgreSQL-i p\u00f5histatistika s\u00fcsteem on <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/B-tree\">B-puu<\/a><\/noindex>. See indeksit\u00fc\u00fcp on optimeeritud salvestuss\u00fcsteemide jaoks.<\/p>\n<p><\/p>\n<p>Kasutame lihtsalt k\u00e4sku <code>CREATE INDEX ON some_table (some_column)<\/code>, ja PostgreSQL teeb suure osa t\u00f6\u00f6st, et indeks oleks ajakohane, kui me pidevalt v\u00e4\u00e4rtusi sisestame, uuendame ja eemaldame. K\u00f5ik toimib iseeneslikult, justkui n\u00f5ia v\u00e4el.<\/p>\n<p><\/p>\n<p>Entretanto, PostgreSQL indeksid on \u00fcks probleem \u2014 need <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/checking-for-postgresql-bloat\">paisuvad<\/a><\/noindex> ning v\u00f5tavad k\u00f5vakettal liigset ruumi, mis v\u00e4hendab andmete v\u00e4ljatoomise ja v\u00e4rskendamise j\u00f5udlust. \u201ePaisumise\u201d all m\u00f5istan ma indeksistruktuuri mitteefektiivset hoidmist. See v\u00f5ib olla \u2014 v\u00f5i ei pruugi \u2014 seotud r\u00e4mpskandidaatidega, mida eemaldab <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/sql-vacuum.html\">VACUUM<\/a><\/noindex> (t\u00e4nu Peter Geogheganile (<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/petervgeoghegan\">Peter Geoghegan<\/a><\/noindex>)). Indeksi paisumine on eriti silmatorkav t\u00f6\u00f6koormustes, kus indeks muutub aktiivselt.<\/p>\n<p><\/p>\n<p>PostgreSQL 12 parandab oluliselt B-puu indeksite toimimist ning TPC-C testide eksperimendid on n\u00e4idanud, et ruumi kasutatakse n\u00fc\u00fcd keskmiselt 40% v\u00e4hem. Kulutame n\u00fc\u00fcd v\u00e4hem aega mitte ainult B-puu indeksite hooldamiseks (st kirjutamisoperatsioonideks), vaid ka andmete v\u00e4ljatoomiseks, kuna indeksid on oluliselt v\u00e4iksemad.<\/p>\n<p><\/p>\n<p>Rakendused, mis aktiivselt uuendavad oma tabeleid \u2014 tavaliselt OLTP rakendused (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Online_transaction_processing\">reaalajas tehingute t\u00f6\u00f6tlemine<\/a><\/noindex>) \u2014 kasutavad ketast palju t\u00f5husamalt ja t\u00f6\u00f6tlevad p\u00e4ringud. Mida rohkem on kettal ruumi, seda rohkem on andmebaasil kasvuruumi ilma infrastruktuuri uuendamata.<\/p>\n<p><\/p>\n<p>M\u00f5ned uuendamisstrateegiad vajavad B-puu indeksite \u00fcmberkujundamist, et neid eeliseid maksimaalselt \u00e4ra kasutada (n\u00e4iteks, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/pgupgrade.html\">pg_upgrade<\/a><\/noindex> ei ehita indekseid automaatselt). Varasemates PostgreSQL versioonides suurte indeksite \u00fcmbertegemine tabelites p\u00f5hjustas suure \u00fcldseisaku, kuna sel ajal ei saanud andmeid muuta. Kuid PostgreSQL 12-l on veel \u00fcks suurep\u00e4rane omadus: n\u00fc\u00fcd saab indekseid \u00fcheaegselt uuendada 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 seisakut.<\/p>\n<p><\/p>\n<p>PostgreSQL 12-l on ka teisi indekseerimise infrastruktuuri t\u00e4iustusi. Veel \u00fcks asi, kus ei saanud ilma v\u00f5luj\u00f5uta, on <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/wal-intro.html\">eelmise kirje p\u00e4evik<\/a><\/noindex>, tuntud ka kui WAL (write-ahead log). Eelmise kirje p\u00e4evik salvestab iga tehingu PostgreSQL-is, et ette valmistada t\u00f5rke ja taastumise korral. Rakendused kasutavad seda arhiveerimiseks ja <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/pgbackrest-point-in-time-recovery-using-crunchy-postgresql-operator\">teatud hetke taastamiseks<\/a><\/noindex>. Loomulikult kirjutatakse eelmise kirje p\u00e4evik kettale, mis v\u00f5ib m\u00f5jutada j\u00f5udlust.<\/p>\n<p><\/p>\n<p>PostgreSQL 12-s v\u00e4hendati WAL-salvestuste kulu, mida loomise indeksite GiST, GIN ja SP-GiST k\u00e4igus tekitatakse. See pakub mitmeid m\u00e4rgatavaid eeliseid: WAL-salvestused v\u00f5tavad v\u00e4hem ketas ruumi ja andmete taastamine toimub kiiremini, n\u00e4iteks t\u00f5rke taastamise v\u00f5i ajaprogrammi taastamise ajal. Kui kasutate neid indekseid oma rakendustes (n\u00e4iteks geograafilised rakendused, mis p\u00f5hinevad PostGIS-il, kasutavad GiST-indeksit laialdaselt), on see veel \u00fcks funktsioon, mis parandab teie t\u00f6\u00f6 efektiivsust ilma lisapingutusteta.<\/p>\n<p><\/p>\n<h3 id=\"sekcionirovanie--bolshe-luchshe-bystree\">Sektsioonimine \u2014 rohkem, parem, kiirem<\/h3>\n<p><\/p>\n<p>PostgreSQL 10-s lisandus <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/ddl-partitioning.html\">deklaratiivne sektsioonimine<\/a><\/noindex>. PostgreSQL 11-s on see palju lihtsam kasutada. PostgreSQL 12-s on v\u00f5imalik sektsioonide skaalat muuta.<\/p>\n<p><\/p>\n<p>PostgreSQL 12-s suutlikkus sektsioonimise osas on oluliselt paranenud, eriti kui tabelis on tuhandeid sektsioone. N\u00e4iteks kui p\u00e4ring h\u00f5lmab vaid m\u00f5ningaid sektsioone tabelis, kus neid on tuhandeid, t\u00e4idetakse see palju kiiremini. Suutlikkuse parandus ei piirdu ainult selliste p\u00e4ringutega. Samuti m\u00e4rkate, kui kiireks on muutunud INSERT operatsioonid tabelites, kus on palju sektsioone.<\/p>\n<p><\/p>\n<p>Andmete salvestamine <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/sql-copy.html\">COPY<\/a><\/noindex> \u2014 muide, see on suurep\u00e4rane viis <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/fast-csv-and-json-ingestion-in-postgresql-with-copy\">masstestimise jaoks<\/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 sektsioneeritud tabelitesse PostgreSQL 12-s on samuti muutunud t\u00f5husamaks. COPY meetodi kasutamine oli juba kiire, kuid PostgreSQL 12-s on see t\u00e4iesti uskumatu.<\/p>\n<p><\/p>\n<p>Nende eeliste t\u00f5ttu saavad PostgreSQL-s salvestada veelgi suuremaid andmekogumeid, samas kui nende v\u00e4ljav\u00f5tmine on muutunud lihtsamaks. Ja te ei pea selle nimel pingutama. Kui teie rakendusel on palju sektsioone, n\u00e4iteks kui see salvestab ajarekke, siis lihtne uuendus parandab selle j\u00f5udlust oluliselt.<\/p>\n<p><\/p>\n<p>Kuigi see t\u00e4iendus ei kuulu just kategooriasse \u201e\u00fcles t\u00f5stetud ja r\u00f5\u00f5mustame\u201d, v\u00f5imaldab PostgreSQL 12 luua v\u00e4list\u00e4iendusi, mis viitavad sektsioonitud tabelitele, et sektsioonimisega t\u00f6\u00f6tamine oleks t\u00f5eline nauding.<\/p>\n<p><\/p>\n<h3 id=\"zaprosy-with-stali-gorazdo-luchshe\">WITH p\u00e4ringud on saanud 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\">t\u00f6\u00f6tati v\u00e4lja t\u00e4iendav patch sisseehitatud \u00fcldiste tabelite v\u00e4ljendite jaoks<\/a><\/noindex> (need on CTE-d, need on WITH p\u00e4ringud), siis ei saanud ma 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 arendajad koos PostgreSQL-iga<\/a><\/noindex>. See on \u00fcks neist funktsioonidest, mis kiirendavad rakendust. Kui, muidugi, kasutate CTE-d.<\/p>\n<p><\/p>\n<p>Ma olen sageli m\u00e4rganud, et SQL-i algajad armastavad CTE-sid kasutada: kui kirjutada need teatud viisil, tunned, et kirjutad imperatiivset programmi. Isiklikult meeldis mulle need p\u00e4ringud \u00fcmber kirjutada, et ilma j\u00e4\u00e4da <em>ilma<\/em> CTE-dest ja suurendada j\u00f5udlust. N\u00fc\u00fcd on k\u00f5ik teisiti.<\/p>\n<p><\/p>\n<p>PostgreSQL 12 v\u00f5imaldab m\u00f5ningate CTE-de infrastruktuuri ilma k\u00f5rvaln\u00e4htudeta (<code>SELECT<\/code>), mida kasutatakse ainult \u00fcks kord p\u00e4ringu l\u00f5pus. Kui ma j\u00e4lgiksin CTE p\u00e4ringute statistikat, 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>Lisaks sellele optimiseerib PostgreSQL 12 SQL-i teostust automaatselt, teil ei pea midagi tegema. Ja kuigi ilmselt ei pea ma enam selliseid p\u00e4ringuid optimeerima, on tore, et PostgreSQL j\u00e4tkab p\u00e4ringute optimeerimisega 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, mis toetavad <noindex><a rel=\"nofollow\" href=\"https:\/\/llvm.org\/\">LLVM<\/a><\/noindex> JIT-kompileerimine on vaikimisi lubatud. Esiteks, te saate toe <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/jit.html\">JIT<\/a><\/noindex> m\u00f5nede sisemiste toimingute jaoks ning teiseks, v\u00e4ljenditega p\u00e4ringud (lihtsaim n\u00e4ide \u2014 x + y) valikuliste loendites (mis seisavad p\u00e4rast SELECT), agregaatides, WHERE-haru v\u00e4ljendites ja muudes saavad JIT'i kasutada j\u00f5udluse parandamiseks.<\/p>\n<p><\/p>\n<p>Kui JIT on PostgreSQL 12 vaikimisi sisse l\u00fclitatud, paraneb j\u00f5udlus iseenesest, kuid soovitan testida rakendust PostgreSQL 11-s, kus JIT alles ilmus, et m\u00f5\u00f5ta p\u00e4ringute j\u00f5udlust ja m\u00e4\u00e4rata, kas midagi vajab seadistamist.<\/p>\n<p><\/p>\n<h3 id=\"a-kak-zhe-ostalnye-novye-fichi-postgresql-12\">Aga kuidas on teiste uute funktsioonidega PostgreSQL 12?<\/h3>\n<p><\/p>\n<p>PostgreSQL 12-s on palju uusi lahedaid funktsioone - alates JSON andmete uurimise v\u00f5imalusest standardsete SQL\/JSON teekondade abil kuni mitme faktoriga autentimiseni parameetriga <code>clientcert=verify-full<\/code>, genereeritud veergude ja paljuga muuga. Selleks on vaja eraldi postitust.<\/p>\n<p><\/p>\n<p>Nagu PostgreSQL 10, t\u00f5stab PostgreSQL 12 ka p\u00e4rast uuendust \u00fcldist j\u00f5udlust. Loomulikult v\u00f5ib teil olla oma l\u00e4henemine - testige rakendust sarnastes tingimustes tootmiss\u00fcsteemis, enne kui l\u00fclitate sisse t\u00e4iustused, nagu tegin mina PostgreSQL 10-ga. Isegi kui PostgreSQL 12 on juba praegu stabiilsem, kui ma eeldasin, \u00e4rge unustage kvalitatiivselt testida rakendusi, enne kui need tootmisse l\u00e4hevad.<\/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 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\/et\/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=\"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: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\/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\udd47\u00dcksuste t\u00f5stmine laiskadele: kuidas PostgreSQL 12 t\u00f5stab j\u00f5udlust | ProHoster","description":"PostgreSQL 12, maailma parima avatud allikaga relatsioonilise andmebaasi viimane versioon, ilmub paari n\u00e4dala jooksul (kui k\u00f5ik l\u00e4heb plaanip\u00e4raselt). See vastab tavap\u00e4rasele ajakavale \u2014 uus versioon, millega on kaasas hulk uusi funktsioone, ilmub kord aastas ja ausalt \u00f6eldes, see on muljetavaldav. Seet\u00f5ttu olen ma aktiivne PostgreSQL kogukonna liige. Minu arvates, erinevalt","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: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\/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"},"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}]}}