PostgreSQL, ook wel Postgres genoemd, is een open source, objectgeoriënteerd relationeel databasebeheersysteem.
Na elf maanden ontwikkeling is de release van de nieuwe versie van PostgreSQL 16 aangekondigd . Deze nieuwe stabiele versie van het databasebeheersysteem zal vijf jaar lang updates ontvangen, tot november 2028. Het markeert tevens het einde van de PostgreSQL 11.x-versie, de oudste versie die momenteel nog wordt ondersteund, die op 9 november wordt stopgezet.
Voor degenen die nog niet bekend zijn met PostgreSQL: het is een gratis, open-source relationeel databasebeheersysteem (RDBMS) dat tot doel heeft een database te bieden die gebaseerd is op uitbreidbaarheid en naleving van technische standaarden.
Belangrijkste nieuwe functies van PostgreSQL 16
Deze nieuwe versie van PostgreSQL 16 biedt uitgebreidere tools voor toegangscontrole bij logische replicatie. Zo is er bijvoorbeeld een nieuwe, vooraf gedefinieerde functie, "pg_create_subscription", toegevoegd waarmee gebruikers het recht kunnen krijgen om nieuwe abonnementen aan te maken.
Aan de clientzijde is ondersteuning voor load balancing toegevoegd met behulp van de standaard libpq-bibliotheek. Load balancing stelt de client in staat verbinding te maken met verschillende hosts, die in een specifieke of willekeurige volgorde kunnen worden geselecteerd. Als een host niet beschikbaar is, wordt geprobeerd verbinding te maken met een andere server. Zodra de verbinding tot stand is gebracht, worden verzoeken binnen de sessie naar de geselecteerde server verzonden.
Daarnaast zijn er optimalisaties doorgevoerd en is de werking van de queryplanner verbeterd, doordat deze parallelisatie biedt voor de tabeljoinbewerkingen » FULLY » en » RIGHT JOIN ».
In PostgreSQL 16 vinden we ook uitgebreidere ondersteuning voor de "Collation"-locale , waarmee je sorteerregels en vergelijkingsmethoden kunt instellen op basis van de betekenis van tekens. Standaard compileert het nu met ICU-locales in plaats van de libc-locale.
De prestaties van logische replicatie zijn verbeterd doordat de mogelijkheid is geïmplementeerd om gelijktijdig werkende processors te gebruiken . Daarnaast is het mogelijk om B-tree-indexen te gebruiken voor tabellen zonder primaire sleutels, waardoor sequentieel scannen bij het zoeken naar records niet meer nodig is. Ook de initiële synchronisatie van sommige tabellen in binair formaat is versneld.
Een andere verbetering aan het logische replicatiemechanisme is dat wijzigingen die in de database worden aangebracht bij het toevoegen, verwijderen of bijwerken van records, nu naar een andere server kunnen worden verzonden; het is uitgebreid met de mogelijkheid om wijzigingen van een back-upserver te repliceren.
Er is ook ondersteuning toegevoegd voor bidirectionele logische replicatie van tabellen , waardoor wijzigingen tussen twee tabellen op verschillende servers kunnen worden gesynchroniseerd. De replicatiemogelijkheden in PostgreSQL 16 maken het mogelijk om configuraties met meerdere servers (actief-actief-modus) te creëren, waarbij INSERT-, UPDATE- en DELETE-bewerkingen gelijktijdig kunnen worden uitgevoerd.
Andere opvallende wijzigingen zijn onder meer:
- Het gebruik van de bewerkingen “RIGHT JOIN” en “OUTER JOIN” geoptimaliseerd om rijen te vinden die niet in de samengevoegde tabel staan (“anti-join”).
- Verbeterde efficiëntie van het optimalisatieplan voor query's die gebruik maken van aggregatiefuncties in combinatie met DISTINCT- of ORDER BY-clausules.
- Incrementeel sorteren wordt gebruikt om SELECT DISTINCT-query's te versnellen.
De VACUUM-bedieningsstrategie is verbeterd om het aantal situaties te verminderen waarbij de hele tafel moet worden vergrendeld. - Op x86- en ARM-architecturen zijn vectorprocessorinstructies (SIMD) geïmplementeerd om de verwerking van ASCII-reeksen, bewerkingen op JSON-gegevens en het uitvoeren van array-lookups en subtransacties te versnellen.
- De module “auto_explain” bevat nu ondersteuning voor het loggen van waarden die worden doorgegeven aan geparametriseerde queries.
- Verbeterde nauwkeurigheid van het algoritme voor het volgen van verzoeken dat wordt gebruikt in de weergaven pg_stat_statements en pg_stat_activity.
- De mogelijkheden voor het monitoren van DBMS-prestaties zijn uitgebreid. Een serviceweergave »pg_stat_io» toegevoegd met statistieken die de belasting van het I/O-systeem door verschillende backends (achtergrondwerker, autovacuum, etc.) en objecten weerspiegelen.
- Er is een nieuw veld toegevoegd aan de serviceweergave » pg_stat_all_tables » met informatie over het tijdstip van de laatste scan van een tabel of index.
Als u tot slot meer wilt weten, kunt u de details vinden via de volgende link.