Skupina vývojárov PostgreSQL oznámila vydanie PostgreSQL 12, najnovšej verzie relačného systému správy databáz s otvoreným zdrojovým kódom.
V PostgreSQL 12 bola výrazne vylepšená výkonnosť dotazov – najmä pokiaľ ide o prácu s veľkými objemami údajov, bola tiež optimalizovaná celková efektívnosť využívania diskového priestoru.
Medzi novými možnosťami:
- implementácia jazyka dotazov JSON Path (dôležitá súčasť štandardu SQL/JSON);
- optimalizácia vykonávania spoločných tabuľkových výrazov (WITH);
- podpora generovaných stĺpcov
Komunita pokračuje v práci na rozšíriteľnosti a spoľahlivosti PostgreSQL, rozvíja podporu internacionalizácie, autentifikačných možností a poskytuje jednoduchšie spôsoby správy systému.
Do tohto vydania bola zapracovaná realizácia rozhrania pre pripojiteľné úložné motory, čo teraz umožňuje vývojárom vytvárať vlastné metódy ukladania údajov.
Pokračujeme vo zlepšovaní výkonu GitLab s každým vydaním pre inštancie GitLab akéhokoľvek rozmeru. Niektoré vylepšenia v GitLab 11.10:
PostgreSQL 12 obsahuje zásadné vylepšenia výkonnosti a procedúr údržby pre systémy indexovania a delenia dát.
B-tree indexy – štandardný typ indexovania v PostgreSQL, boli optimalizované vo verzii 12 pre zaťaženia, ktoré predpokladajú časté modifikácie indexov. Použitie referenčného testu TPC-C pre PostgreSQL 12 preukázalo zníženie použitia priestoru v priemere o 40 % a celkový nárast výkonnosti dotazov.
Dotazy na delené tabuľky získali výrazné vylepšenia, najmä pre tabuľky pozostávajúce z tisíc sekcií, čo predpokladá prácu iba s obmedzenými časťami dátových polí. Vylepšená bola aj výkonnosť pridávania údajov do delených tabuliek prostredníctvom INSERT a COPY, ako aj možnosť pripojiť novú sekciu bez blokovania vykonávaných dotazov.
V PostgreSQL 12 boli vykonané ďalšie vylepšenia v indexovaní, ktoré ovplyvňujú celkovú výkonnosť, vrátane:
- zníženie režijných nákladov pri generovaní WAL pre typy indexov GiST, GIN a SP-GiST;
- možnosť vytvárať takzvané pokrývajúce indexy (covering indexes, návrh INCLUDE) na GiST indexy;
- možnosť realizovať dotazy „najbližších susedov“ (k-NN search) pomocou operátora vzdialenosti () a využívaním indexov SP-GiST;
- podporu zberu štatistiky najbežnejších hodnôt (most-common value, MCV) pomocou CREATE STATISTICS, čo pomáha získať lepšie plány vykonávania dotazov pri použití stĺpcov, ktorých hodnoty sú rozložené nerovnomerne.
JIT-kompilácia s využitím LLVM, ktorá sa objavila v PostgreSQL 11, je teraz zapnutá predvolene. JIT-kompilácia umožňuje zlepšiť výkon pri práci s výrazmi v podmienkach WHERE, cielene, agregátoch a niektorých vnútorných operáciách. Je dostupná, ak ste PostgreSQL skompilovali s LLVM alebo používate balík PostgreSQL, ktorý bol zostavený s povoleným LLVM.
Zlepšenia funkcií jazyka SQL a kompatibility so štandardom
V PostgreSQL 12 sa objavila možnosť vykonávať dotazy na dokumenty JSON pomocou výrazov cesty JSON definovaných v štandarde SQL/JSON. Tieto dotazy môžu využívať existujúce mechanizmy indexovania pre dokumenty uložené vo formáte JSONB, aby efektívne extrahovali údaje.
Spoločné tabuľkové výrazy, známe aj ako dotazy s WITH, v PostgreSQL 12 teraz môžu automaticky fungovať s použitím substitúcie, čo môže pomôcť zvýšiť výkon mnohých existujúcich dotazov. V novej verzii môže byť časť dotazu WITH vykonaná s substitúciou iba ak nie je rekurzívna, nemá vedľajšie účinky a odkazuje sa na ňu iba raz v nasledujúcej časti dotazu.
V PostgreSQL 12 sa objavuje podpora 'generovaných stĺpcov'. Opísaný v štandarde SQL, tento typ stĺpca vypočítava hodnotu na základe obsahu iných stĺpcov v tej istej tabuľke. V tejto verzii PostgreSQL podporuje 'uložené generované stĺpce', kde sa vypočítaná hodnota ukladá na disku.
Internacionalizácia
PostgreSQL 12 rozširuje podporu ICU-porovnaní, umožňujúc používateľom definovať 'nuderterminované porovnaní', ktoré môžu napríklad umožniť porovnania bez ohľadu na veľkosť písmen alebo diakritiku.
Autentifikácia
PostgreSQL rozširuje svoju podporu spoľahlivých metód autentifikácie prostredníctvom niekoľkých vylepšení, ktoré poskytujú dodatočnú bezpečnosť a funkcionalitu. V tejto verzii je predstavené šifrovanie na strane klienta a servera pre autentifikáciu cez rozhrania GSSAPI, ako aj možnosť, aby PostgreSQL detekoval servery LDAP, ak PostgreSQL bol skompilovaný s OpenLDAP.
Okrem toho, PostgreSQL 12 teraz podporuje možnosť viacfaktorovej autentifikácie. Teraz server PostgreSQL môže požadovať od klienta poskytnutie platného SSL-certifikátu s príslušným menom používateľa pomocou clientcert=verify-full, a kombinovať to s oddeleným požiadavkom metódy autentifikácie (napríklad scram-sha-256).
Administrácia
V PostgreSQL 12 sa objavila možnosť vykonávať neblokujúce prestavanie indexov pomocou príkazu REINDEX CONCURRENTLY. To umožňuje používateľom vyhnúť sa prestojom v práci databázy pri dlhých prestavbách indexov.
Okrem toho v PostgreSQL 12 je možné zapnúť alebo vypnúť kontrolu súčtov strán v klastre, ktorý je v vypnutom stave, pomocou príkazu pg_checksums. Predtým mohla byť kontrola súčtov strán — funkcia, ktorá pomáha overiť integritu dát uložených na disku — zapnutá len pri inicializácii klastru PostgreSQL pomocou initdb.
Zdroj: linux.org.ru
