Po roku vývoja nová stabilná vetva databázového systému PostgreSQL 12. Aktualizácie pre novú vetvu v priebehu piatich rokov do novembra 2024.
Hlavné :
- Pridalo sa podporu „«, 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 , pripomínajúcich 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 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 (, 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 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 , 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 „“ na prestavbu indexov bez zablokovania operácií zápisu do indexu;
- Pridaný príkaz , 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 „“ 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 súbory recovery.signal a standby.signal.
Zdroj: opennet.ru
