{"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\/pt\/blog\/administrirovanie\/apgrejd-dlya-lenivyh-kak-postgresql-12-povyshaet-proizvoditelnost","title":{"rendered":"Upgrade para os pregui\u00e7osos: como o PostgreSQL 12 melhora o desempenho","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Upgrade para os pregui\u00e7osos: como o PostgreSQL 12 melhora o desempenho\" 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>, a \u00faltima vers\u00e3o \"a melhor base de dados relacional de c\u00f3digo aberto do mundo\" ser\u00e1 lan\u00e7ada em algumas semanas (se tudo correr bem). Isso se alinha \u00e0 programa\u00e7\u00e3o usual \u2014 uma nova vers\u00e3o com uma infinidade de novos recursos \u00e9 lan\u00e7ada uma vez por ano e, honestamente, isso \u00e9 impressionante. Por isso, me tornei um membro ativo da comunidade PostgreSQL.<\/p>\n<p><\/p>\n<p>Na minha opini\u00e3o, ao contr\u00e1rio de vers\u00f5es anteriores, o PostgreSQL 12 n\u00e3o possui uma ou duas fun\u00e7\u00f5es revolucion\u00e1rias (como, por exemplo, particionamento ou paralelismo de consultas). Brinquei que a principal novidade do PostgreSQL 12 \u00e9 uma maior estabilidade. E n\u00e3o \u00e9 isso que precisamos ao gerenciar dados cr\u00edticos do seu neg\u00f3cio?<\/p>\n<p><\/p>\n<p>Mas o PostgreSQL 12 n\u00e3o se limita a isso: com novos recursos e aprimoramentos, os aplicativos funcionar\u00e3o melhor, <em>e tudo o que voc\u00ea precisa fazer \u00e9 fazer o upgrade!<\/em><\/p>\n<p><\/p>\n<p>(Bem, talvez seja necess\u00e1rio reconstruir os \u00edndices, mas nesta vers\u00e3o isso n\u00e3o \u00e9 t\u00e3o assustador quanto est\u00e1vamos acostumados.)<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Vai ser \u00f3timo fazer o upgrade do PostgreSQL e imediatamente desfrutar de melhorias significativas sem muito esfor\u00e7o. Alguns anos atr\u00e1s, analisei a atualiza\u00e7\u00e3o do PostgreSQL 9.4 para o PostgreSQL 10 e vi como o aplicativo acelerou gra\u00e7as ao melhorado paralelismo de consultas no PostgreSQL 10. E, o mais importante, quase nada foi exigido de mim (apenas definir um par\u00e2metro de configura\u00e7\u00e3o <code>max_parallel_workers<\/code>).<\/p>\n<p><\/p>\n<p>Concorda que \u00e9 conveniente quando logo ap\u00f3s o upgrade os aplicativos funcionam melhor? E nos esfor\u00e7amos muito para agradar os usu\u00e1rios, pois a comunidade do PostgreSQL est\u00e1 crescendo.<\/p>\n<p><\/p>\n<p>E como um simples upgrade para o PostgreSQL 12 o deixar\u00e1 feliz? Agora eu explico.<\/p>\n<p><\/p>\n<h3 id=\"sereznye-uluchsheniya-indeksirovaniya\">Melhorias s\u00e9rias na indexa\u00e7\u00e3o<\/h3>\n<p><\/p>\n<p>Sem indexa\u00e7\u00e3o, o banco de dados n\u00e3o vai longe. Como mais encontrar informa\u00e7\u00f5es rapidamente? O sistema de indexa\u00e7\u00e3o fundamental do PostgreSQL \u00e9 chamado de <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/B-tree\">B-tree<\/a><\/noindex>. Este tipo de \u00edndice \u00e9 otimizado para sistemas de armazenamento.<\/p>\n<p><\/p>\n<p>Utilizamos simplesmente o comando <code>CREATE INDEX ON some_table (some_column)<\/code>, e o PostgreSQL faz o trabalho pesado para manter o \u00edndice atualizado enquanto continuamos a inserir, atualizar e excluir valores. Tudo funciona por conta pr\u00f3pria, como por encanto.<\/p>\n<p><\/p>\n<p>Mas os \u00edndices do PostgreSQL t\u00eam um problema \u2014 eles <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/checking-for-postgresql-bloat\">crescem descontroladamente<\/a><\/noindex> e ocupam espa\u00e7o extra no disco, enquanto o desempenho da extra\u00e7\u00e3o e atualiza\u00e7\u00e3o de dados diminui. Por \"incha\u00e7o\", entendo a manuten\u00e7\u00e3o ineficiente da estrutura do \u00edndice. Isso pode ou n\u00e3o estar relacionado a tuplas lixo que s\u00e3o removidas. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/sql-vacuum.html\">VACUUM<\/a><\/noindex> (obrigado pela informa\u00e7\u00e3o a Peter Geoghegan (<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/petervgeoghegan\">Peter Geoghegan<\/a><\/noindex>)). O incha\u00e7o do \u00edndice \u00e9 especialmente not\u00e1vel em cargas de trabalho onde o \u00edndice est\u00e1 mudando ativamente.<\/p>\n<p><\/p>\n<p>O PostgreSQL 12 melhora significativamente o funcionamento dos \u00edndices de \u00e1rvore B, e experimentos com testes do tipo TPC-C mostraram que o espa\u00e7o agora \u00e9 utilizado, em m\u00e9dia, 40% a menos. Agora gastamos menos tempo n\u00e3o apenas na manuten\u00e7\u00e3o dos \u00edndices de \u00e1rvore B (ou seja, em opera\u00e7\u00f5es de grava\u00e7\u00e3o), mas tamb\u00e9m na extra\u00e7\u00e3o de dados, pois os \u00edndices se tornaram muito menores.<\/p>\n<p><\/p>\n<p>Aplicativos que atualizam suas tabelas ativamente \u2014 geralmente s\u00e3o aplicativos OLTP (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Online_transaction_processing\">processamento de transa\u00e7\u00f5es em tempo real<\/a><\/noindex>) \u2014 ser\u00e3o muito mais eficientes no uso do disco e no processamento de consultas. Quanto mais espa\u00e7o houver no disco, mais espa\u00e7o a base de dados tem para crescer sem atualiza\u00e7\u00e3o de infraestrutura.<\/p>\n<p><\/p>\n<p>Algumas estrat\u00e9gias de atualiza\u00e7\u00e3o exigem a reconstru\u00e7\u00e3o de \u00edndices de \u00e1rvore B para aproveitar essas vantagens (por exemplo, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/pgupgrade.html\">pg_upgrade<\/a><\/noindex> n\u00e3o reconstruir\u00e1 os \u00edndices automaticamente). Em vers\u00f5es anteriores do PostgreSQL, a reconstru\u00e7\u00e3o de grandes \u00edndices nas tabelas resultava em interrup\u00e7\u00f5es significativas, uma vez que, nesse momento, n\u00e3o podiam ser feitas altera\u00e7\u00f5es. Mas no PostgreSQL 12 h\u00e1 mais um recurso interessante: agora \u00e9 poss\u00edvel reconstruir \u00edndices em paralelo com o comando <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/12\/sql-reindex.html\">REINDEX CONCURRENTLY<\/a><\/noindex>, para evitar totalmente as interrup\u00e7\u00f5es.<\/p>\n<p><\/p>\n<p>No PostgreSQL 12, h\u00e1 outras melhorias na infraestrutura de indexa\u00e7\u00e3o. Mais uma coisa, onde n\u00e3o faltou m\u00e1gica, \u00e9 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/wal-intro.html\">registro de escrita antecipada<\/a><\/noindex>, tamb\u00e9m conhecido como WAL (write-ahead log). O log de grava\u00e7\u00e3o antecipada registra cada transa\u00e7\u00e3o no PostgreSQL para casos de falha e replica\u00e7\u00e3o. Os aplicativos o utilizam para arquivamento e <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/pgbackrest-point-in-time-recovery-using-crunchy-postgresql-operator\">recupera\u00e7\u00e3o em um ponto no tempo<\/a><\/noindex>. Claro, o log de grava\u00e7\u00e3o antecipada \u00e9 gravado no disco, e isso pode afetar o desempenho.<\/p>\n<p><\/p>\n<p>No PostgreSQL 12, os custos de registros WAL, gerados por \u00edndices GiST, GIN e SP-GiST durante a constru\u00e7\u00e3o do \u00edndice, foram reduzidos. Isso traz v\u00e1rias vantagens significativas: os registros WAL ocupam menos espa\u00e7o em disco e os dados s\u00e3o mais r\u00e1pidos de serem reproduzidos, por exemplo, durante a recupera\u00e7\u00e3o ap\u00f3s uma falha ou a recupera\u00e7\u00e3o em um ponto no tempo. Se voc\u00ea utiliza esses \u00edndices em suas aplica\u00e7\u00f5es (por exemplo, aplica\u00e7\u00f5es geoespaciais que usam bastante o \u00edndice GiST no PostGIS), esta \u00e9 mais uma funcionalidade que melhorar\u00e1 consideravelmente o desempenho sem nenhum esfor\u00e7o adicional da sua parte.<\/p>\n<p><\/p>\n<h3 id=\"sekcionirovanie--bolshe-luchshe-bystree\">Particionamento \u2014 mais, melhor, mais r\u00e1pido<\/h3>\n<p><\/p>\n<p>No PostgreSQL 10, foi introduzido <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/ddl-partitioning.html\">o particionamento declarativo<\/a><\/noindex>. No PostgreSQL 11, passou a ser muito mais f\u00e1cil de usar. No PostgreSQL 12, o tamanho das se\u00e7\u00f5es pode ser alterado.<\/p>\n<p><\/p>\n<p>No PostgreSQL 12, o desempenho do sistema de particionamento melhorou significativamente, especialmente se a tabela cont\u00e9m milhares de se\u00e7\u00f5es. Por exemplo, se uma consulta afeta apenas algumas se\u00e7\u00f5es em uma tabela com milhares, ela ser\u00e1 executada muito mais rapidamente. O desempenho melhorou n\u00e3o apenas para esse tipo de consulta. Voc\u00ea tamb\u00e9m perceber\u00e1 como as opera\u00e7\u00f5es de INSERT em tabelas com muitas se\u00e7\u00f5es ficaram mais r\u00e1pidas.<\/p>\n<p><\/p>\n<p>A grava\u00e7\u00e3o de dados usando <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/sql-copy.html\">COPY<\/a><\/noindex> \u2014 ali\u00e1s, \u00e9 uma excelente maneira <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/fast-csv-and-json-ingestion-in-postgresql-with-copy\">de carregar dados em massa<\/a><\/noindex> e aqui est\u00e1 um exemplo <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/fast-csv-and-json-ingestion-in-postgresql-with-copy\">do uso de JSON<\/a><\/noindex> \u2014 em tabelas particionadas, no PostgreSQL 12, tamb\u00e9m ficou mais eficiente. Com o COPY j\u00e1 era r\u00e1pido, e agora no PostgreSQL 12 est\u00e1 voando.<\/p>\n<p><\/p>\n<p>Gra\u00e7as a essas vantagens, no PostgreSQL \u00e9 poss\u00edvel armazenar conjuntos de dados ainda maiores, e a extra\u00e7\u00e3o deles se tornou mais f\u00e1cil. E sem nenhum esfor\u00e7o da sua parte. Se sua aplica\u00e7\u00e3o possui muitas se\u00e7\u00f5es, por exemplo, se grava dados de s\u00e9ries temporais, uma simples atualiza\u00e7\u00e3o melhorar\u00e1 consideravelmente o desempenho.<\/p>\n<p><\/p>\n<p>E embora essa melhoria n\u00e3o seja exatamente da categoria \"atualizamos e ficamos felizes\", no PostgreSQL 12 \u00e9 poss\u00edvel criar chaves estrangeiras que referenciam tabelas particionadas, tornando o trabalho com particionamento um verdadeiro prazer.<\/p>\n<p><\/p>\n<h3 id=\"zaprosy-with-stali-gorazdo-luchshe\">As consultas WITH melhoraram significativamente<\/h3>\n<p><\/p>\n<p>Quando <noindex><a rel=\"nofollow\" href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commitdiff;h=608b167f9f9c4553c35bb1ec0eab9ddae643989b\">um patch foi aplicado para express\u00f5es de tabela comuns integradas<\/a><\/noindex> (tamb\u00e9m conhecidas como CTE, que s\u00e3o consultas WITH), eu estava ansioso para escrever um artigo sobre como os desenvolvedores de aplica\u00e7\u00f5es se alegraram com o PostgreSQL <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/with-queries-present-future-common-table-expressions\">. Esta \u00e9 uma daquelas funcionalidades que aceleram a aplica\u00e7\u00e3o. Se, claro, voc\u00ea estiver usando CTE.<\/a><\/noindex>. Esta \u00e9 uma daquelas funcionalidades que aceleram o aplicativo. Se, claro, voc\u00ea estiver usando CTE.<\/p>\n<p><\/p>\n<p>Eu frequentemente noto que iniciantes em SQL gostam de usar CTE: se voc\u00ea os escrever de uma certa maneira, sente como se estivesse escrevendo um programa imperativo. Pessoalmente, eu gostava de reescrever essas consultas para evit\u00e1-las <em>sem<\/em> CTE e aumentar o desempenho. Agora \u00e9 tudo diferente.<\/p>\n<p><\/p>\n<p>O PostgreSQL 12 permite incorporar um tipo espec\u00edfico de CTE sem efeitos colaterais (<code>SELECT<\/code>), que \u00e9 usado apenas uma vez, mais para o final da consulta. Se eu mantivesse estat\u00edsticas sobre as consultas com CTE que reescrevi, a maioria delas se encaixaria nessa categoria. Isso ajuda os desenvolvedores a escrever c\u00f3digo claro que agora tamb\u00e9m funciona de forma r\u00e1pida.<\/p>\n<p><\/p>\n<p>Al\u00e9m disso, o PostgreSQL 12 otimiza a execu\u00e7\u00e3o do SQL automaticamente, voc\u00ea n\u00e3o precisa fazer nada. E embora agora, provavelmente, eu n\u00e3o precise otimizar essas consultas, \u00e9 \u00f3timo que o PostgreSQL continue a trabalhar na otimiza\u00e7\u00e3o das consultas.<\/p>\n<p><\/p>\n<h3 id=\"just-in-time-jit--teper-po-umolchaniyu\">Just-in-Time (JIT) \u2014 agora por padr\u00e3o<\/h3>\n<p><\/p>\n<p>Em sistemas PostgreSQL 12 com suporte a <noindex><a rel=\"nofollow\" href=\"https:\/\/llvm.org\/\">LLVM<\/a><\/noindex> A compila\u00e7\u00e3o JIT est\u00e1 habilitada por padr\u00e3o. Primeiro, voc\u00ea obt\u00e9m suporte \u00e0 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/jit.html\">JIT<\/a><\/noindex> para algumas opera\u00e7\u00f5es internas, e em segundo lugar, consultas com express\u00f5es (o exemplo mais simples \u00e9 x + y) em listas de sele\u00e7\u00f5es (que est\u00e3o ap\u00f3s o SELECT), agrega\u00e7\u00f5es, express\u00f5es nas cl\u00e1usulas WHERE e outras podem usar JIT para aumentar o desempenho.<\/p>\n<p><\/p>\n<p>Uma vez que o JIT est\u00e1 habilitado no PostgreSQL 12 por padr\u00e3o, o desempenho melhorar\u00e1 por conta pr\u00f3pria, mas eu recomendo testar o aplicativo no PostgreSQL 11, onde o JIT apenas surgiu, para medir o desempenho das consultas e ver se h\u00e1 algo a ser ajustado.<\/p>\n<p><\/p>\n<h3 id=\"a-kak-zhe-ostalnye-novye-fichi-postgresql-12\">E quanto \u00e0s outras novas funcionalidades do PostgreSQL 12?<\/h3>\n<p><\/p>\n<p>O PostgreSQL 12 traz uma s\u00e9rie de novas funcionalidades incr\u00edveis \u2014 desde a capacidade de explorar dados JSON usando express\u00f5es padr\u00e3o SQL\/JSON at\u00e9 autentica\u00e7\u00e3o multifator com a op\u00e7\u00e3o <code>clientcert=verify-full<\/code>, colunas geradas e muito mais. Isso merece um post separado.<\/p>\n<p><\/p>\n<p>Assim como o PostgreSQL 10, o PostgreSQL 12 melhorar\u00e1 o desempenho geral logo ap\u00f3s a atualiza\u00e7\u00e3o. \u00c9 claro que voc\u00ea pode ter seu pr\u00f3prio caminho \u2014 teste o aplicativo em condi\u00e7\u00f5es similares em um sistema de produ\u00e7\u00e3o antes de ativar as melhorias, como eu fiz com o PostgreSQL 10. Mesmo que o PostgreSQL 12 j\u00e1 esteja mais est\u00e1vel do que eu esperava, n\u00e3o se esque\u00e7a de testar bem os aplicativos antes de lan\u00e7\u00e1-los em produ\u00e7\u00e3o.<\/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 5.0.3 - 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\/pt\/blog\/administrirovanie\/apgrejd-dlya-lenivyh-kak-postgresql-12-povyshaet-proizvoditelnost\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\/pt\/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\udd47Atualiza\u00e7\u00e3o para os pregui\u00e7osos: como o PostgreSQL 12 melhora o desempenho | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/apgrejd-dlya-lenivyh-kak-postgresql-12-povyshaet-proizvoditelnost","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/37975","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=37975"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/37975\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/28500"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=37975"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=37975"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=37975"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}