24. září tým vývojářů oznámil vydání nové verze PostgreSQL číslo 13. V této verzi se, mimo jiné, zaměřili na zvýšení výkonu, zrychlení interních servisních služeb a zjednodušení monitorování databáze, jakož i na spolehlivější kontrolu přístupu k systému.
Pokračovala práce na optimalizaci indexování tabulek z hlediska zpracování duplicit mezi indexovanými daty v binárních stromech indexů, což umožnilo nejen urychlit vykonávání dotazů, ale také snížit diskový prostor obsazovaný indexem.
Dále byl přidán algoritmus inkrementálního třídění, díky němuž probíhá opětovné třídění již seřazených dat z předchozích kroků rychleji, a u některých dotazů lze urychlení dosáhnout díky použití nové rozšířené statistiky (přes příkaz CREATE STATISTICS) při výpočtu efektivnějšího plánování kroků.
Bylo také optimalizováno vykonávání dotazů s náročnou agregací dat širším využitím hashované agregace a odhazováním části agregovaných dat na disk, pokud se nevejdou do operační paměti. Zaznamenává se významné zvýšení rychlosti spojování tabulek umístěných na různých oddílech.
Bylo vykonáno značné množství práce také v oblasti zjednodušení údržby a administrace databází PostgreSQL. Vestavěná úloha "vakuační", tedy použití uvolněného diskového prostoru po odebrání nebo přepsání řádků, nyní může být prováděna v paralelních vláknech, přičemž administrátor má možnost určit jejich počet. Kromě toho byly přidány nové nástroje pro monitorování aktuální aktivity databáze a byla odstraněna rizika chyb při synchronizaci logů předběžného zápisu mezi masterem a replikami, což mohlo vést ke konfliktům při vypnutí replik nebo narušit integritu distribuované databáze po jejím obnovení na základě dat z logu.
Mezi novinkami pro vývojáře vyniká funkce datetime(), která převádí různé standardní formáty zápisu času na vestavěný typ Postgresql; dostupná je také funkce pro generování UUID v4 gen_random_uuid(); normalizace práce s Unicode; pružnější systém rozdělování dat tabulek na propojených síťových uzlech databáze s plnohodnotnou replikací na logické úrovni, a další změny v dotazech a nově dostupných triggerech pro repliky.
Kontrola přístupu k databázi je deklarována jako jeden z klíčových komponentů systému a v nové verzi byly v tomto ohledu učiněny významné kroky vpřed. Nyní může instalaci rozšíření do databáze provádět pouze privilegovaný uživatel (superuser). Obvyklí uživatelé si budou moci instalovat pouze ta rozšíření, která označili jako důvěryhodná, nebo malý soubor rozšíření, která jsou považována za důvěryhodná ve výchozím nastavení (například pgcrypto, tablefunc nebo hstore). Při autentizaci uživatelů pomocí mechanismu SCRAM (při práci přes ovladač libpq) je nyní vyžadována „vazba kanálu“ a funkce-wrapper pro externí data postgres_fdw od verze 13 podporuje autorizaci na základě certifikátu.
Zdroj: linux.org.ru
