Uvoľnenie databázového systému PostgreSQL 12

Po roku vývoja bola publikovaná nová stabilná vetva databázového systému PostgreSQL 12. Aktualizácie pre novú vetvu budú vychádzať v priebehu piatich rokov do novembra 2024.

Hlavné novinky:

  • Pridalo sa podporu „generovaných stĺpcov«, ktorých hodnoty sa počítajú na základe výrazu, ktorý pokrýva hodnoty iných stĺpcov v tej istej tabuľke (analóg pohľadov, ale pre jednotlivé stĺpce). Generované stĺpce môžu byť dvoch typov — uložené a virtuálne. V prvom prípade sa hodnota počíta pri pridávaní alebo zmene údajov, a v druhom — pri každom čítaní na základe aktuálneho stavu iných stĺpcov. V súčasnosti PostgreSQL podporuje iba uložené generované stĺpce;
  • Pridala sa možnosť vykonávať dopyty na dáta z JSON-dokumentov pomocou výrazov Path, pripomínajúcich XPath a definovaných v štandarde SQL/JSON. Na zlepšenie efektivity spracovania takýchto výrazov pre dokumenty uložené vo formáte JSONB sa používajú existujúce mechanizmy indexovania;
  • Predvolene je zahrnuté používanie JIT kompilátora (Just-in-Time), založené na technológii LLVM, na urýchlenie vykonávania niektorých výrazov počas spracovania SQL dopytu. Napríklad, JIT je použiteľný na urýchlenie vykonávania výrazov vo vnútri blokov „WHERE“, vo výstupných zoznamoch (target lists), agregátových výrazoch a niektorých vnútorných operáciách;
  • Výrazne sa zlepšila výkonnosť indexovania. Indexy B-tree sú optimalizované na prácu v podmienkach častého zmeny indexov — v testoch TPC-C sa pozoruje celkové zvýšenie výkonu a zníženie spotreby diskového priestoru v priemere o 40%. Znížili sa režijné náklady pri generovaní logu predchádzajúceho zápisu (WAL) pre typy indexov GiST, GIN a SP-GiST. Pre GiST sa pridala možnosť vytvárania indexov-obálok (cez výraz INCLUDE), ktoré zahŕňajú ďalšie stĺpce. V operácii CREATE STATISTICS sa zabezpečila podpora štatistiky o najtypickejších hodnotách (MCV), čo umožňuje vytvárať optimálnejšie plány dopytov pri použití nerovnomerne rozložených stĺpcov;
  • Implementácia sekcionovania (particionovania) je optimalizovaná pre dotazy pokrývajúce tabuľky s tisíckami sekcií, ale obmedzené na výber obmedzeného podmnožstva dát. Zvýšená výkonnosť vkladania dát do sekcionovaných tabuliek pomocou operácií INSERT a COPY, ako aj možnosť pridávať nové sekcie cez „ALTER TABLE ATTACH PARTITION“ bez zablokovania vykonávania dotazov;
  • Pridaná podpora automatického inline rozbalenia zovšeobecnených tabuľkových výrazov (Common Table Expression, CTE), ktoré umožňujú používať dočasné pomenované výsledné sady zadané pomocou operátora WITH. Inline rozbalenie zvyšuje výkonnosť väčšiny dotazov, ale v súčasnosti sa aplikuje iba na nerekurzívne CTE;
  • Pridaná podpora nedeterminovaných vlastností lokality „Collation“, ktorá umožňuje definovať pravidlá triedenia a metódy porovnávania s ohľadom na zmysel znakov (napríklad pri triedení číselných hodnôt sa zohľadňuje prítomnosť minus a bodky pred číslom a rôzne spôsoby písania, zatiaľ čo pri porovnávaní sa ignoruje veľkosť písmen a prítomnosť diakritiky);
  • Pridaná podpora viacfaktorovej autentifikácie klienta, pri ktorej je v pg_hba.conf možné kombinovať autentifikáciu pomocou SSL certifikátu (clientcert=verify-full) s dodatočnou metódou autentifikácie, ako je scram-sha-256;
  • Pridaná podpora šifrovania kanála pri autentifikácii cez GSSAPI, ako na strane klienta, tak aj na strane servera;
  • Pridaná podpora definovania LDAP serverov na základe záznamov „DNS SRV“, ak bol PostgreSQL zostavený s OpenLDAP;
  • Pridaná operácia „REINDEX CONCURRENTLY“ na prestavbu indexov bez zablokovania operácií zápisu do indexu;
  • Pridaný príkaz pg_checksums, ktorá umožňuje v existujúcej DB zapínať a vypínať kontrolu kontrolných súm stránok dát (predtým bola táto operácia podporovaná iba počas inicializácie DB);
  • Zabezpečené zobrazenie indikátora postupu pri vykonávaní operácií CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL a pg_checksums;
  • Pridaná príkaz „CREATE ACCESS METHOD“ pre pripojenie spracovateľov nových metód ukladania tabuliek, optimalizovaných pre rôzne špecifické úlohy. V súčasnosti je jedinou zabudovanou metódou prístupu k tabuľkám „heap“;
  • Konfiguračný súbor recovery.conf bol zlúčený s postgresql.conf. Ako indikátory pre prechod do režimu zotavenia po havárii by sa teraz mali použiť súbory recovery.signal a standby.signal.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster