Na een jaar van ontwikkeling nieuwe stabiele tak van het databasesysteem PostgreSQL 12. Updates voor deze nieuwe tak tot november 2024 gedurende vijf jaar.
Belangrijkste :
- Ondersteuning toegevoegd voor "", waarvan de waarden worden berekend op basis van een expressie die de waarden van andere kolommen in dezelfde tabel omvat (vergelijkbaar met views, maar voor afzonderlijke kolommen). Gemaakt kolommen kunnen van twee typen zijn: opgeslagen en virtueel. In het eerste geval wordt de waarde berekend bij het toevoegen of wijzigen van gegevens, en in het tweede geval bij elke lezing op basis van de huidige toestand van andere kolommen. Momenteel ondersteunt PostgreSQL alleen opgeslagen gegenereerde kolommen;
- De mogelijkheid toegevoegd om gegevensquery's uit JSON-documenten uit te voeren met behulp van , die doen denken aan en gedefinieerd in de SQL/JSON-standaard. Voor een betere verwerkingsefficiƫntie van dergelijke expressies voor documenten die in JSONB-formaat zijn opgeslagen, worden bestaande indexeringsmechanismen toegepast;
- De toepassing van de JIT-compiler (Just-in-Time) is standaard ingeschakeld, gebaseerd op LLVM-ontwikkelingen voor het versnellen van de uitvoering van bepaalde expressies tijdens de verwerking van SQL-query's. Bijvoorbeeld, JIT is toepasbaar voor het versnellen van de uitvoering van expressies binnen 'WHERE'-blokken, in de uitvoerlijsten (target lists), aggregaatexpressies en sommige interne bewerkingen;
- De prestaties van indexering zijn aanzienlijk verbeterd. B-tree-indexen zijn geoptimaliseerd voor gebruik in omstandigheden van frequente indexwijzigingen ā in TPC-C-tests was er een algemene prestatieverbetering en een gemiddelde vermindering van de schijfruimteconsumptie met 40%. De overhead bij het genereren van de write-ahead-log (WAL) voor GiST-, GIN- en SP-GiST-indexen is verlaagd. Voor GiST is de mogelijkheid toegevoegd om wrapper-indexen te creĆ«ren (via de expressie INCLUDE) die extra kolommen omvatten. In de operatie is ondersteuning voor statistieken over de meest voorkomende waarden (MCV) toegevoegd, wat het mogelijk maakt om optimalere queryplannen te genereren bij het gebruik van ongelijkmatig verdeelde kolommen;
- De implementatie van partitionering is geoptimaliseerd voor queries die tabellen met duizenden secties beslaan, maar zich beperken tot het selecteren van een beperkte subset van gegevens. De prestaties van het toevoegen van gegevens aan partitionele tabellen zijn verbeterd door middel van INSERT- en COPY-operaties, en het toevoegen van nieuwe secties is mogelijk via 'ALTER TABLE ATTACH PARTITION' zonder de uitvoering van queries te blokkeren.
- Ondersteuning toegevoegd voor automatische inline-uitbreiding van algemene tabeluitdrukkingen (, CTE), waarmee tijdelijke benoembare resultsets kunnen worden gebruikt die zijn gedefinieerd met de WITH-operator. Inline-uitbreiding kan de prestaties van de meeste queries verbeteren, maar wordt momenteel alleen toegepast voor niet-recurrerende CTE.
- Ondersteuning toegevoegd voor collationeigenschappen van de locale, die regels voor sorteren en matching kunnen definiëren op basis van de betekenis van tekens (bijvoorbeeld bij het sorteren van numerieke waarden wordt rekening gehouden met het bestaan van een minteken en een punt vóór het getal en verschillende schrijfwijzen, terwijl bij vergelijkingen hoofdletters en accenten ongemoeid blijven).
- Ondersteuning toegevoegd voor multi-factor authenticatie voor klanten, waarbij in pg_hba.conf authenticatie op basis van een SSL-certificaat (clientcert=verify-full) kan worden gecombineerd met een aanvullende authenticatiemethode, zoals scram-sha-256.
- Ondersteuning toegevoegd voor het versleutelen van de communicatie tijdens authenticatie met , zowel aan de client- als serverzijde.
- Ondersteuning toegevoegd voor het definiƫren van LDAP-servers op basis van 'DNS SRV'-records, indien PostgreSQL is samengesteld met OpenLDAP.
- De operatie '' is toegevoegd voor het herbouwen van indexen zonder het blokkeren van schrijfoperaties in de index.
- Er is een nieuwe commando toegevoegd , waarmee voor een bestaande database de controle van de checksummen van gegevenspagina's kan worden in- en uitgeschakeld (deze operatie werd eerder alleen ondersteund tijdens de initiƫle opbouw van de database).
- Voorzien in de weergave van een voortgangsindicator voor de operaties CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL en pg_checksums.
- Een opdracht '' toegevoegd voor het aansluiten van handlers voor nieuwe opslagmethoden die zijn geoptimaliseerd voor verschillende specifieke taken. Momenteel is 'heap' de enige ingebouwde toegangsmethode tot tabellen.
- Het configuratiebestand recovery.conf is samengevoegd met postgresql.conf. Als indicatoren voor de overgang naar een hersteltoestand na een storing worden nu gebruikt de bestanden recovery.signal en standby.signal.
Bron: opennet.ru
