{"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\/hu\/blog\/administrirovanie\/apgrejd-dlya-lenivyh-kak-postgresql-12-povyshaet-proizvoditelnost","title":{"rendered":"Friss\u00edt\u00e9s lust\u00e1knak: hogyan n\u00f6veli a PostgreSQL 12 a teljes\u00edtm\u00e9nyt","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Friss\u00edt\u00e9s lust\u00e1knak: hogyan n\u00f6veli a PostgreSQL 12 a teljes\u00edtm\u00e9nyt\" 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 leg\u00fajabb verzi\u00f3ja a \"vil\u00e1g legjobb ny\u00edlt forr\u00e1sk\u00f3d\u00fa rel\u00e1ci\u00f3s adatb\u00e1zis\u00e1nak\" n\u00e9h\u00e1ny h\u00e9ten bel\u00fcl megjelenik (ha minden a tervek szerint halad). Ez megfelel a szok\u00e1sos \u00fctemtervnek \u2014 \u00e9vente jelenik meg \u00faj verzi\u00f3 sz\u00e1mos \u00faj funkci\u00f3val, \u00e9s \u0151szint\u00e9n sz\u00f3lva, ez leny\u0171g\u00f6z\u0151. Ez\u00e9rt lettem akt\u00edv tagja a PostgreSQL k\u00f6z\u00f6ss\u00e9gnek.<\/p>\n<p><\/p>\n<p>Szerintem, a kor\u00e1bbi kiad\u00e1sokt\u00f3l elt\u00e9r\u0151en, a PostgreSQL 12 nem tartalmaz egy-k\u00e9t forradalmi funkci\u00f3t (mint p\u00e9ld\u00e1ul a partiion\u00e1l\u00e1s vagy a p\u00e1rhuzamos lek\u00e9rdez\u00e9sek). Viccel\u0151dtem, hogy a PostgreSQL 12 f\u0151 vonzereje a nagyobb stabilit\u00e1s. \u00c9s nem ez a legfontosabb, amikor a v\u00e1llalkoz\u00e1sod kritikus adatainak kezel\u00e9s\u00e9r\u0151l van sz\u00f3?<\/p>\n<p><\/p>\n<p>De a PostgreSQL 12 nem mer\u00fcl ki ennyiben: az \u00faj funkci\u00f3kkal \u00e9s fejleszt\u00e9sekkel a alkalmaz\u00e1sok jobban fognak m\u0171k\u00f6dni, <em>\u00e9s mind\u00f6ssze annyit k\u00e9r\u00fcnk t\u0151led, hogy v\u00e9gezd el a friss\u00edt\u00e9st!<\/em><\/p>\n<p><\/p>\n<p>(Nos, tal\u00e1n az indexeket is \u00fajra kell \u00e9p\u00edteni, de ebben a kiad\u00e1sban ez nem olyan r\u00e9miszt\u0151, mint ahogyan azt megszoktuk.)<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>Milyen nagyszer\u0171 is lesz \u2014 friss\u00edteni a PostgreSQL-t, \u00e9s azonnal \u00e9lvezni a jelent\u0151s javul\u00e1sokat minim\u00e1lis er\u0151fesz\u00edt\u00e9ssel. N\u00e9h\u00e1ny \u00e9vvel ezel\u0151tt elemeztem a PostgreSQL 9.4-r\u0151l 10-re val\u00f3 friss\u00edt\u00e9st, \u00e9s l\u00e1ttam, hogy mennyivel felgyorsult az alkalmaz\u00e1s a PostgreSQL 10 jobb p\u00e1rhuzamos lek\u00e9rdez\u00e9seinek k\u00f6sz\u00f6nhet\u0151en. \u00c9s ami a legfontosabb, hogy t\u0151lem szinte semmi nem volt sz\u00fcks\u00e9ges (csak be kellett \u00e1ll\u00edtanom egy konfigur\u00e1ci\u00f3s param\u00e9tert. <code>max_parallel_workers<\/code>).<\/p>\n<p><\/p>\n<p>Egyet\u00e9rtesz, hogy k\u00e9nyelmes, amikor a friss\u00edt\u00e9s ut\u00e1n az alkalmaz\u00e1sok jobban m\u0171k\u00f6dnek. Mi is nagyon igyeksz\u00fcnk \u00f6r\u00f6met szerezni a felhaszn\u00e1l\u00f3knak, hiszen egyre t\u00f6bb van bel\u0151l\u00fck a PostgreSQL eset\u00e9ben.<\/p>\n<p><\/p>\n<p>Hogyan fog egy egyszer\u0171 friss\u00edt\u00e9s a PostgreSQL 12-re boldogg\u00e1 tenni? Most mes\u00e9lek r\u00f3la.<\/p>\n<p><\/p>\n<h3 id=\"sereznye-uluchsheniya-indeksirovaniya\">Jelent\u0151s fejleszt\u00e9sek az indexel\u00e9sben<\/h3>\n<p><\/p>\n<p>Indexel\u00e9s n\u00e9lk\u00fcl az adatb\u00e1zis nem fog messzire jutni. Hogyan tal\u00e1lhatn\u00e1nk meg gyorsan az inform\u00e1ci\u00f3t? A PostgreSQL alapvet\u0151 indexel\u00e9si rendszere a <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/B-tree\">B-fa<\/a><\/noindex>. Ez a t\u00edpus\u00fa index a t\u00e1rol\u00e1si rendszerekhez van optimaliz\u00e1lva.<\/p>\n<p><\/p>\n<p>Csak annyit kell tenn\u00fcnk, hogy a k\u00f6vetkez\u0151 oper\u00e1tort haszn\u00e1ljuk: <code>CREATE INDEX ON some_table (some_column),<\/code>\u00e9s a PostgreSQL elv\u00e9gzi a nagy munk\u00e1t, hogy naprak\u00e9szen tartsa az indexet, mik\u00f6zben folyamatosan besz\u00farunk, friss\u00edt\u00fcnk \u00e9s t\u00f6rl\u00fcnk \u00e9rt\u00e9keket. Minden automatikusan m\u0171k\u00f6dik, mint egy var\u00e1zslat.<\/p>\n<p><\/p>\n<p>De a PostgreSQL indexeinek van egy probl\u00e9m\u00e1ja \u2014 azok <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/checking-for-postgresql-bloat\">megn\u0151nek<\/a><\/noindex> \u00e9s felesleges helyet foglalnak el a lemezen, mik\u00f6zben a lek\u00e9rdez\u00e9sek \u00e9s adatok friss\u00edt\u00e9seinek teljes\u00edtm\u00e9nye cs\u00f6kken. A \"t\u00faln\u00f6veked\u00e9s\" alatt azt \u00e9rtem, hogy az indexstrukt\u00fara fenntart\u00e1sa hat\u00e9konytalan. Ez lehet \u2014 \u00e9s lehet, hogy nem is \u2014 \u00f6sszef\u00fcgg a t\u00f6r\u00f6lt felesleges tuple-okkal, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/sql-vacuum.html\">VACUUM<\/a><\/noindex> (k\u00f6sz\u00f6net az inform\u00e1ci\u00f3\u00e9rt Peter Geoghgegan-nak (<noindex><a rel=\"nofollow\" href=\"https:\/\/twitter.com\/petervgeoghegan\">Peter Geoghegan<\/a><\/noindex>)). Az index t\u00faln\u00f6veked\u00e9se k\u00fcl\u00f6n\u00f6sen \u00e9szlelhet\u0151 azokban a munkaterhel\u00e9sekben, ahol az index akt\u00edvan v\u00e1ltozik.<\/p>\n<p><\/p>\n<p>A PostgreSQL 12 jelent\u0151sen jav\u00edtja a B-f\u00e1k indexeinek teljes\u00edtm\u00e9ny\u00e9t, \u00e9s a TPC-C t\u00edpus\u00fa tesztek k\u00eds\u00e9rletei azt mutatt\u00e1k, hogy a t\u00e1rhely most \u00e1tlagosan 40%-kal kevesebb helyet ig\u00e9nyel. Most kevesebb id\u0151t t\u00f6lt\u00fcnk nemcsak a B-fa indexek karbantart\u00e1s\u00e1val (azaz \u00edr\u00e1si m\u0171veletek), hanem az adatok lek\u00e9rdez\u00e9s\u00e9vel is, mivel az indexek sokkal kisebbek lettek.<\/p>\n<p><\/p>\n<p>Azok az alkalmaz\u00e1sok, amelyek akt\u00edvan friss\u00edtik t\u00e1bl\u00e1ikat \u2014 ezek \u00e1ltal\u00e1ban OLTP alkalmaz\u00e1sok (<noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Online_transaction_processing\">val\u00f3s idej\u0171 tranzakci\u00f3kezel\u00e9s<\/a><\/noindex>) \u2014 sokkal hat\u00e9konyabban haszn\u00e1lj\u00e1k a lemezt \u00e9s kezelik a lek\u00e9rdez\u00e9seket. Min\u00e9l t\u00f6bb hely van a lemezen, ann\u00e1l nagyobb a lehet\u0151s\u00e9g a b\u00e1zi adatb\u00e1zis n\u00f6veked\u00e9s\u00e9re an\u00e9lk\u00fcl, hogy sz\u00fcks\u00e9g lenne az infrastrukt\u00fara friss\u00edt\u00e9s\u00e9re.<\/p>\n<p><\/p>\n<p>Egyes friss\u00edt\u00e9si strat\u00e9gi\u00e1k megk\u00f6vetelik, hogy a B-fa indexeket \u00fajra\u00e9p\u00edts\u00e9k az el\u0151ny\u00f6k kihaszn\u00e1l\u00e1s\u00e1hoz (p\u00e9ld\u00e1ul, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/pgupgrade.html\">pg_upgrade<\/a><\/noindex> nem \u00e9p\u00edti \u00fajra automatikusan az indexeket). A kor\u00e1bbi PostgreSQL verzi\u00f3kban a nagy indexek \u00fajra\u00e9p\u00edt\u00e9se a t\u00e1bl\u00e1kban jelent\u0151s le\u00e1ll\u00e1shoz vezetett, mivel ez id\u0151 alatt nem lehetett m\u00f3dos\u00edt\u00e1sokat v\u00e9gezni. De a PostgreSQL 12-ben van egy m\u00e1sik nagyszer\u0171 funkci\u00f3: most a indexek p\u00e1rhuzamosan is \u00fajra\u00e9p\u00edthet\u0151k a <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/12\/sql-reindex.html\">REINDEX CONCURRENTLY<\/a><\/noindex>parancs seg\u00edts\u00e9g\u00e9vel, hogy teljesen elker\u00fclj\u00fck a le\u00e1ll\u00e1st.<\/p>\n<p><\/p>\n<p>A PostgreSQL 12-ben m\u00e9g m\u00e1s jav\u00edt\u00e1sok is vannak az indexel\u00e9si infrastrukt\u00far\u00e1ban. M\u00e9g egy dolog, ahol nem maradt el a var\u00e1zslat \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/wal-intro.html\">el\u0151zetes napl\u00f3z\u00e1s<\/a><\/noindex>, m\u00e1s n\u00e9ven WAL (write-ahead log). Az el\u0151zetes napl\u00f3z\u00e1s minden tranzakci\u00f3t r\u00f6gz\u00edt a PostgreSQL-ben hiba \u00e9s replik\u00e1ci\u00f3 eset\u00e9re. Az alkalmaz\u00e1sok ezt haszn\u00e1lj\u00e1k archiv\u00e1l\u00e1sra \u00e9s <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/pgbackrest-point-in-time-recovery-using-crunchy-postgresql-operator\">vissza\u00e1ll\u00edt\u00e1sra adott id\u0151pillanatra<\/a><\/noindex>. Term\u00e9szetesen az el\u0151zetes napl\u00f3z\u00e1s a lemezre \u00edr\u00f3dik, ami befoly\u00e1solhatja a teljes\u00edtm\u00e9nyt.<\/p>\n<p><\/p>\n<p>A PostgreSQL 12 eset\u00e9ben cs\u00f6kkentek a WAL-bejegyz\u00e9sek k\u00f6lts\u00e9gei, amelyeket a GiST, GIN \u00e9s SP-GiST indexek gener\u00e1lnak az index l\u00e9trehoz\u00e1sakor. Ez sz\u00e1mos k\u00e9zzelfoghat\u00f3 el\u0151nyt k\u00edn\u00e1l: a WAL-bejegyz\u00e9sek kevesebb lemezter\u00fcletet foglalnak el, \u00e9s az adatok gyorsabban reproduk\u00e1lhat\u00f3ak, p\u00e9ld\u00e1ul hibaelh\u00e1r\u00edt\u00e1s vagy id\u0151pontra val\u00f3 vissza\u00e1ll\u00edt\u00e1s sor\u00e1n. Ha ilyen indexeket haszn\u00e1l az alkalmaz\u00e1saiban (p\u00e9ld\u00e1ul a PostGIS alap\u00fa t\u00e9rinformatikai alkalmaz\u00e1sok nagym\u00e9rt\u00e9kben haszn\u00e1lj\u00e1k a GiST indexet), ez egy \u00fajabb funkci\u00f3, amely jelent\u0151sen jav\u00edtja a teljes\u00edtm\u00e9nyt, an\u00e9lk\u00fcl, hogy b\u00e1rminem\u0171 er\u0151fesz\u00edt\u00e9st tennie kellene.<\/p>\n<p><\/p>\n<h3 id=\"sekcionirovanie--bolshe-luchshe-bystree\">Partition\u00e1l\u00e1s \u2014 t\u00f6bb, jobb, gyorsabb<\/h3>\n<p><\/p>\n<p>A PostgreSQL 10 m\u00e1r megjelent <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/ddl-partitioning.html\">deklarat\u00edv part\u00edci\u00f3z\u00e1s<\/a><\/noindex>. A PostgreSQL 11-ben sokkal k\u00f6nnyebben haszn\u00e1lhat\u00f3v\u00e1 v\u00e1lt. A PostgreSQL 12-ben m\u00e1r meg lehet v\u00e1ltoztatni a part\u00edci\u00f3k m\u00e9ret\u00e9t.<\/p>\n<p><\/p>\n<p>A PostgreSQL 12-ben a part\u00edci\u00f3z\u00e1si rendszerek teljes\u00edtm\u00e9nye jelent\u0151sen javult, k\u00fcl\u00f6n\u00f6sen, ha a t\u00e1bl\u00e1zatban ezrek vannak. P\u00e9ld\u00e1ul ha a lek\u00e9rdez\u00e9s csak n\u00e9h\u00e1ny part\u00edci\u00f3t \u00e9rint a t\u00e1bl\u00e1zatban, ahol t\u00f6bb ezer part\u00edci\u00f3 van, az jelent\u0151sen gyorsabb lesz. A teljes\u00edtm\u00e9ny nemcsak az ilyen t\u00edpus\u00fa lek\u00e9rdez\u00e9sek eset\u00e9ben javult. Ezen k\u00edv\u00fcl \u00e9szre fogja venni, hogy a sok part\u00edci\u00f3val rendelkez\u0151 t\u00e1bl\u00e1zatokba t\u00f6rt\u00e9n\u0151 INSERT m\u0171veletek is felgyorsultak.<\/p>\n<p><\/p>\n<p>Az adatok r\u00f6gz\u00edt\u00e9se a <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/sql-copy.html\">COPY<\/a><\/noindex> \u2014 egy\u00e9bk\u00e9nt ez egy nagyszer\u0171 m\u00f3dszer <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/fast-csv-and-json-ingestion-in-postgresql-with-copy\">t\u00f6meges adatbet\u00f6lt\u00e9sre<\/a><\/noindex> \u00e9s itt van egy p\u00e9lda <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/fast-csv-and-json-ingestion-in-postgresql-with-copy\">JSON<\/a><\/noindex> -ba a part\u00edcion\u00e1lt t\u00e1bl\u00e1zatokba a PostgreSQL 12-ben szint\u00e9n hat\u00e9konyabb lett. A COPY m\u00e1r eddig is gyors volt, de a PostgreSQL 12-ben m\u00e1r szinte rep\u00fcl.<\/p>\n<p><\/p>\n<p>Ezeknek az el\u0151ny\u00f6knek k\u00f6sz\u00f6nhet\u0151en a PostgreSQL-ben m\u00e9g nagyobb m\u00e9ret\u0171 adathalmazon \u00e1ll\u00edthat\u00f3k t\u00e1rol\u00e1sra, az adatok el\u0151h\u00edv\u00e1sa pedig egyszer\u0171bb lett. \u00c9s mindez er\u0151fesz\u00edt\u00e9sek n\u00e9lk\u00fcl. Ha az alkalmaz\u00e1sban sok part\u00edci\u00f3 van, p\u00e9ld\u00e1ul ha id\u0151sort adatok r\u00f6gz\u00edt\u00e9s\u00e9r\u0151l van sz\u00f3, egy egyszer\u0171 friss\u00edt\u00e9s jelent\u0151sen jav\u00edtja a teljes\u00edtm\u00e9ny\u00e9t.<\/p>\n<p><\/p>\n<p>B\u00e1r ez a fejleszt\u00e9s nem pontosan a \u201efriss\u00edtett\u00fck, \u00e9s \u00f6rvend\u00fcnk\u201d kateg\u00f3ri\u00e1ba tartozik, a PostgreSQL 12-ben k\u00fcls\u0151 kulcsok hozhat\u00f3k l\u00e9tre, amelyek hivatkoznak a part\u00edcion\u00e1lt t\u00e1bl\u00e1zatokra, \u00edgy a part\u00edcion\u00e1l\u00e1s kezel\u00e9se val\u00f3di \u00e9lvezet.<\/p>\n<p><\/p>\n<h3 id=\"zaprosy-with-stali-gorazdo-luchshe\">A WITH lek\u00e9rdez\u00e9sek sokkal jobbak lettek<\/h3>\n<p><\/p>\n<p>Amikor <noindex><a rel=\"nofollow\" href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commitdiff;h=608b167f9f9c4553c35bb1ec0eab9ddae643989b\">jav\u00edtott\u00e1k a be\u00e9p\u00edtett \u00e1ltal\u00e1nos t\u00e1bl\u00e1zatos kifejez\u00e9seket<\/a><\/noindex> (m\u00e1s n\u00e9ven CTE, m\u00e1s n\u00e9ven WITH lek\u00e9rdez\u00e9sek), alig v\u00e1rtam, hogy cikket \u00edrjak arr\u00f3l, <noindex><a rel=\"nofollow\" href=\"https:\/\/info.crunchydata.com\/blog\/with-queries-present-future-common-table-expressions\">hogyan \u00f6r\u00fcltek az alkalmaz\u00e1sfejleszt\u0151k a PostgreSQL-nek<\/a><\/noindex>. Ez az egyik azok k\u00f6z\u00fcl a funkci\u00f3k k\u00f6z\u00fcl, amelyek gyorsabb\u00e1 teszik az alkalmaz\u00e1st. Ha term\u00e9szetesen CTE-t haszn\u00e1l.<\/p>\n<p><\/p>\n<p>Gyakran \u00e9szreveszem, hogy az SQL \u00fajoncok szeretik a CTE-ket haszn\u00e1lni: ha bizonyos m\u00f3don \u00edrjuk \u0151ket, az ember \u00fagy \u00e9rzi, hogy imperat\u00edv programot \u00edr. Szem\u00e9ly szerint szeretek \u00e1t\u00edrni ezeket a lek\u00e9rdez\u00e9seket, hogy elker\u00fcljem <em>n\u00e9lk\u00fcl<\/em> a CTE-ket \u00e9s n\u00f6veljem a teljes\u00edtm\u00e9nyt. Most minden m\u00e1s.<\/p>\n<p><\/p>\n<p>A PostgreSQL 12 lehet\u0151v\u00e9 teszi egy bizonyos t\u00edpus\u00fa CTE be\u00e9p\u00edt\u00e9s\u00e9t mell\u00e9khat\u00e1sok n\u00e9lk\u00fcl (<code>SELECT<\/code>), amelyet csak egyszer haszn\u00e1lnak a lek\u00e9rdez\u00e9s v\u00e9ge fel\u00e9. Ha statisztik\u00e1t vezetn\u00e9k az \u00e1ltalam \u00e1t\u00edrt CTE-vizsg\u00e1latokr\u00f3l, akkor a legt\u00f6bbj\u00fck ebbe a kateg\u00f3ri\u00e1ba tartozna. Ez seg\u00edt a fejleszt\u0151knek \u00e9rthet\u0151 k\u00f3dot \u00edrni, amely most m\u00e1r gyorsan is m\u0171k\u00f6dik.<\/p>\n<p><\/p>\n<p>Tov\u00e1bb\u00e1, a PostgreSQL 12 optimaliz\u00e1lja az SQL v\u00e9grehajt\u00e1s\u00e1t, \u00edgy semmit sem kell tennie. \u00c9s b\u00e1r most val\u00f3sz\u00edn\u0171leg nem kell optimaliz\u00e1lnom az ilyen lek\u00e9rdez\u00e9seket, j\u00f3 l\u00e1tni, hogy a PostgreSQL folyamatosan dolgozik a lek\u00e9rdez\u00e9sek optimaliz\u00e1l\u00e1s\u00e1n.<\/p>\n<p><\/p>\n<h3 id=\"just-in-time-jit--teper-po-umolchaniyu\">Just-in-Time (JIT) \u2014 most m\u00e1r alap\u00e9rtelmezett<\/h3>\n<p><\/p>\n<p>A PostgreSQL 12 rendszer\u00e9ben t\u00e1mogatott <noindex><a rel=\"nofollow\" href=\"https:\/\/llvm.org\/\">LLVM<\/a><\/noindex> a JIT-leford\u00edt\u00e1s alap\u00e9rtelmez\u00e9s szerint enged\u00e9lyezve van. El\u0151sz\u00f6r is, t\u00e1mogat\u00e1st kap <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/current\/jit.html\">a JIT<\/a><\/noindex> bizonyos bels\u0151 m\u0171veletekhez, m\u00e1sodszor, az \u00f6sszetett kifejez\u00e9sek (a legegyszer\u0171bb p\u00e9lda \u2014 x + y) a v\u00e1laszt\u00e1si list\u00e1kban (amelyek a SELECT ut\u00e1n vannak), az aggreg\u00e1ci\u00f3kban, a WHERE kifejez\u00e9sekkel \u00e9s m\u00e1sokkal a JIT seg\u00edts\u00e9g\u00e9vel jav\u00edthatj\u00e1k a teljes\u00edtm\u00e9nyt.<\/p>\n<p><\/p>\n<p>Mivel a JIT alap\u00e9rtelmez\u00e9s szerint enged\u00e9lyezve van a PostgreSQL 12-ben, a teljes\u00edtm\u00e9ny automatikusan javul, de azt javaslom, hogy tesztelje az alkalmaz\u00e1st a PostgreSQL 11-ben, ahol a JIT el\u0151sz\u00f6r jelent meg, hogy m\u00e9rje a lek\u00e9rdez\u00e9sek teljes\u00edtm\u00e9ny\u00e9t, \u00e9s megtudja, sz\u00fcks\u00e9g van-e b\u00e1rmif\u00e9le be\u00e1ll\u00edt\u00e1sra.<\/p>\n<p><\/p>\n<h3 id=\"a-kak-zhe-ostalnye-novye-fichi-postgresql-12\">Mi a helyzet a PostgreSQL 12 t\u00f6bbi \u00faj funkci\u00f3j\u00e1val?<\/h3>\n<p><\/p>\n<p>A PostgreSQL 12 rengeteg \u00faj izgalmas funkci\u00f3t k\u00edn\u00e1l \u2014 a JSON adatok standard SQL\/JSON kifejez\u00e9sekkel t\u00f6rt\u00e9n\u0151 vizsg\u00e1lat\u00e1t\u00f3l kezdve a t\u00f6bbl\u00e9pcs\u0151s hiteles\u00edt\u00e9sig a k\u00f6vetkez\u0151 param\u00e9terrel <code>clientcert=verify-full<\/code>, l\u00e9trehozott oszlopokkal \u00e9s m\u00e9g sok m\u00e1ssal. Ez egy k\u00fcl\u00f6n posztot meg\u00e9rne.<\/p>\n<p><\/p>\n<p>A PostgreSQL 10-hez hasonl\u00f3an a PostgreSQL 12 is azonnal n\u00f6veli az \u00e1ltal\u00e1nos teljes\u00edtm\u00e9nyt a friss\u00edt\u00e9s ut\u00e1n. Term\u00e9szetesen lehet saj\u00e1t m\u00f3dszere is \u2014 tesztelje az alkalmaz\u00e1st hasonl\u00f3 k\u00f6r\u00fclm\u00e9nyek k\u00f6z\u00f6tt a m\u0171k\u00f6d\u0151 rendszerben, miel\u0151tt enged\u00e9lyezn\u00e9 a fejleszt\u00e9seket, ahogy azt \u00e9n tettem a PostgreSQL 10-n\u00e9l. M\u00e9g ha a PostgreSQL 12 m\u00e1r most is stabilabb, mint gondoltam, ne laz\u00edtson a min\u0151s\u00e9gi alkalmaz\u00e1stesztel\u00e9s sor\u00e1n, miel\u0151tt \u00e9lesbe \u00e1ll\u00edtja.<\/p>\n<p>Forr\u00e1s: <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\/hu\/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=\"hu_HU\" \/>\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\/hu\/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\udd47Friss\u00edt\u00e9s lust\u00e1knak: hogyan jav\u00edtja a PostgreSQL 12 a teljes\u00edtm\u00e9nyt | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/apgrejd-dlya-lenivyh-kak-postgresql-12-povyshaet-proizvoditelnost","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","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\/hu\/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\/hu\/wp-json\/wp\/v2\/posts\/37975","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=37975"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/37975\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/28500"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=37975"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=37975"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=37975"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}