PostgreSQL 12 udgivelse

Efter et års udvikling offentliggjort ny stabil gren af ​​PostgreSQL 12 DBMS. Opdateringer til den nye gren vil komme ud i fem år indtil november 2024.

The main innovationer:

  • Tilføjet support til "genererede kolonner", hvis værdi beregnes ud fra et udtryk, der dækker værdierne af andre kolonner i samme tabel (svarende til visninger, men for individuelle kolonner). De genererede kolonner kan være af to typer - lagrede og virtuelle. I det første tilfælde beregnes værdien på det tidspunkt, data tilføjes eller ændres, og i det andet tilfælde beregnes værdien for hver aflæsning baseret på den aktuelle tilstand for andre kolonner. I øjeblikket understøtter PostgreSQL kun lagrede genererede kolonner;
  • Tilføjet muligheden for at forespørge data fra JSON-dokumenter ved hjælp af Sti udtryk, minder XPath og defineret i SQL/JSON-standarden. Eksisterende indekseringsmekanismer bruges til at forbedre effektiviteten af ​​behandlingen af ​​sådanne udtryk for dokumenter gemt i JSONB-formatet;
  • Aktiveret som standard er brugen af ​​en JIT (Just-in-Time) compiler baseret på LLVM-udviklinger for at fremskynde udførelsen af ​​nogle udtryk under SQL-forespørgselsbehandling. For eksempel bruges JIT til at fremskynde udførelsen af ​​udtryk inde i WHERE-blokke, mållister, aggregerede udtryk og nogle interne operationer;
  • Indekseringsydelsen er blevet væsentligt forbedret. B-tree indekser er optimeret til at fungere i miljøer, hvor indekser ændres hyppigt - TPC-C test viser en samlet stigning i ydeevne og en gennemsnitlig reduktion i diskpladsforbrug på 40%. Reduceret overhead ved generering af fremskrivningslog (WAL) for GiST, GIN og SP-GiST indekstyper. For GiST er muligheden for at oprette wrapper-indekser (via INCLUDE-udtrykket), der inkluderer yderligere kolonner, blevet tilføjet. I Operation OPRET STATISTIK Giver støtte til MCV-statistikker (Most Common Value) for at generere mere optimale forespørgselsplaner ved brug af ujævnt fordelte kolonner;
  • Partitioneringsimplementeringen er optimeret til forespørgsler, der spænder over tabeller med tusindvis af partitioner, men er begrænset til at vælge en begrænset delmængde af data. Ydeevnen for at tilføje data til partitionerede tabeller ved hjælp af INSERT- og COPY-operationer er blevet øget, og det er også muligt at tilføje nye sektioner gennem "ALTER TABLE ATTACH PARTITION" uden at blokere udførelse af forespørgsler;
  • Tilføjet understøttelse af automatisk inline-udvidelse af generaliserede tabeludtryk (Fælles tabeludtryk, CTE), der tillader brug af midlertidige navngivne resultatsæt angivet ved hjælp af WITH-sætningen. Inline-implementering kan forbedre ydeevnen af ​​de fleste forespørgsler, men bruges i øjeblikket kun til ikke-rekursive CTE'er;
  • Tilføjet support ikke-deterministisk egenskaber for lokaliteten "Samling", som giver dig mulighed for at indstille sorteringsregler og matchningsmetoder under hensyntagen til betydningen af ​​tegn (for eksempel ved sortering af digitale værdier, tilstedeværelsen af ​​et minus og en prik foran et tal og forskellige typer stavemåden tages i betragtning, og ved sammenligning tages der ikke hensyn til tilfælde af tegn og tilstedeværelsen af ​​et accenttegn) ;
  • Tilføjet understøttelse af multi-faktor klientgodkendelse, hvor du i pg_hba.conf kan kombinere SSL-certifikatgodkendelse (clientcert=verify-full) med en ekstra godkendelsesmetode såsom scram-sha-256 til godkendelse;
  • Tilføjet understøttelse af kryptering af kommunikationskanalen ved autentificering via GSSAPI, både på klientsiden og på serversiden;
  • Tilføjet understøttelse til at bestemme LDAP-servere baseret på "DNS SRV"-poster, hvis PostgreSQL er bygget med OpenLDAP;
  • Tilføjet operation "GENINDEKSER SAMTIDIGT» at genopbygge indekser uden at blokere skriveoperationer til indekset;
  • Tilføjet kommando pg_checksums, som giver dig mulighed for at aktivere eller deaktivere kontrol af kontrolsummer af datasider for en eksisterende database (tidligere blev denne handling kun understøttet under initialisering af databasen);
  • Leveret output af fremskridtsindikator for operationer CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL og pg_checksums;
  • Tilføjet kommando "OPRET ADGANGSMETODE» at forbinde handlere til nye tabellagringsmetoder optimeret til forskellige specifikke opgaver. I øjeblikket er den eneste indbyggede tabeladgangsmetode "heap";
  • recovery.conf-konfigurationsfilen er blevet flettet med postgresql.conf. Som indikatorer for overgangen til genopretningstilstanden efter en fiasko, nu skal være bruge recovery.signal og standby.signal filer.

Kilde: opennet.ru

Tilføj en kommentar