PostgreSQL 12 udgivelse

PostgreSQL-teamet har annonceret udgivelsen af ​​PostgreSQL 12, den seneste version af open source relationsdatabasestyringssystemet.
PostgreSQL 12 har væsentligt forbedret forespørgselsydeevne - især når man arbejder med store mængder data, og har også optimeret brugen af ​​diskplads generelt.

Nye funktioner inkluderer:

  • implementering af JSON Path-forespørgselssproget (den vigtigste del af SQL/JSON-standarden);
  • optimering af udførelse af almindelige tabeludtryk (WITH);
  • understøttelse af genererede kolonner

Fællesskabet fortsætter også med at arbejde på udvidelsesmulighederne og pålideligheden af ​​PostgreSQL, udvikler support til internationalisering, godkendelsesmuligheder og giver nemmere måder at administrere systemet på.

Denne udgivelse inkluderer implementeringen af ​​en grænseflade til pluggbare lagringsmotorer, som nu giver udviklere mulighed for at skabe deres egne datalagringsmetoder.

Ydelsesforbedringer

PostgreSQL 12 indeholder betydelige ydeevne- og vedligeholdelsesforbedringer til indekserings- og partitioneringssystemer.

B-tree indekser, standard indekseringstypen i PostgreSQL, er blevet optimeret i version 12 til arbejdsbelastninger, der involverer hyppige indeksændringer. Brug af TPC-C benchmark for PostgreSQL 12 viste en gennemsnitlig 40% reduktion i pladsforbrug og en samlet stigning i forespørgselsydeevne.

Forespørgsler mod partitionerede tabeller har fået mærkbare forbedringer, især for tabeller, der består af tusindvis af partitioner, der kun kræver arbejde med begrænsede dele af dataarrays. Ydeevnen for at tilføje data til partitionerede tabeller ved hjælp af INSERT og COPY er blevet forbedret, såvel som muligheden for at vedhæfte en ny partition uden at blokere forespørgsler.

PostgreSQL 12 har foretaget yderligere forbedringer af indeksering, der påvirker den samlede ydeevne, herunder:

  • reduceret overhead ved generering af WAL for GiST, GIN og SP-GiST indekstyper;
  • evnen til at oprette såkaldte dækkende indekser (INCLUDE-klausul) på GiST-indekser;
  • evnen til at udføre "nærmeste nabo"-forespørgsler (k-NN-søgning) ved hjælp af afstandsoperatøren (<->) og ved hjælp af SP-GiST-indekser;
  • understøttelse af indsamling af mest-fælles værdi (MCV) statistik ved hjælp af CREATE STATISTICS, som hjælper med at opnå bedre forespørgselsplaner, når du bruger kolonner, hvis værdier er ujævnt fordelt.

JIT-kompilering ved hjælp af LLVM, introduceret i PostgreSQL 11, er nu aktiveret som standard. JIT-kompilering forbedrer ydeevnen, når du arbejder med udtryk i WHERE-klausuler, mållister, aggregater og nogle interne operationer. Den er tilgængelig, hvis du har kompileret PostgreSQL med LLVM eller bruger en PostgreSQL-pakke, der blev bygget med LLVM aktiveret.

Forbedringer af SQL-sprogfunktioner og standardkompatibilitet

PostgreSQL 12 introducerede muligheden for at forespørge JSON-dokumenter ved hjælp af JSON-stiudtryk defineret i SQL/JSON-standarden. Sådanne forespørgsler kan udnytte eksisterende indekseringsmekanismer for dokumenter, der er gemt i JSONB-format, til effektivt at hente data.

Almindelige tabeludtryk, også kendt som WITH-forespørgsler, kan nu udføres automatisk ved hjælp af substitution i PostgreSQL 12, hvilket igen kan hjælpe med at forbedre ydeevnen af ​​mange eksisterende forespørgsler. I den nye version kan en substitutionsdel af en WITH-forespørgsel kun udføres, hvis den ikke er rekursiv, ikke har nogen bivirkninger og kun refereres én gang i en efterfølgende del af forespørgslen.

PostgreSQL 12 introducerer understøttelse af "genererede kolonner". Denne kolonnetype, der er beskrevet i SQL-standarden, beregner en værdi baseret på indholdet af andre kolonner i samme tabel. I denne version understøtter PostgreSQL "stored generated columns", hvor den beregnede værdi er gemt på disken.

Internationalisering

PostgreSQL 12 udvider understøttelsen af ​​ICU-kollationer ved at give brugerne mulighed for at definere "ikke-deterministiske kollationer", som for eksempel kan tillade sammenligninger uden store og små bogstaver eller accentufølsomme.

autentificering

PostgreSQL udvider sin understøttelse af stærke autentificeringsmetoder med adskillige forbedringer, der giver yderligere sikkerhed og funktionalitet. Denne udgivelse introducerer kryptering på klientsiden og serversiden til godkendelse over GSSAPI-grænseflader, samt muligheden for PostgreSQL til at opdage LDAP-servere, når PostgreSQL er kompileret med OpenLDAP.

Derudover understøtter PostgreSQL 12 nu en mulighed for multifaktorgodkendelse. PostgreSQL-serveren kan nu kræve, at klienten leverer et gyldigt SSL-certifikat med det tilsvarende brugernavn ved hjælp af clientcert=verify-full, og kombinerer dette med et separat godkendelsesmetodekrav (f.eks. scram-sha-256).

administration

PostgreSQL 12 introducerede muligheden for at udføre ikke-blokerende indeksgenopbygninger ved hjælp af REINDEX CONCURRENTLY-kommandoen. Dette giver brugerne mulighed for at undgå DBMS-nedetid under længerevarende indeksgenopbygninger.

Derudover kan du i PostgreSQL 12 aktivere eller deaktivere sidekontrolsummer i en nedlukningsklynge ved hjælp af kommandoen pg_checksums. Tidligere kunne sidekontrolsum, en funktion, der hjælper med at verificere integriteten af ​​data gemt på disken, kun aktiveres, når PostgreSQL-klyngen blev initialiseret ved hjælp af initdb.

Kilde: linux.org.ru

Tilføj en kommentar