PostgreSQL 12 DBMS release

Efter ett år av utveckling publicerat ny stabil gren av PostgreSQL 12 DBMS. Uppdateringar för den nya grenen kommer komma ut i fem år till november 2024.

Den huvudsakliga innovationer:

  • Lade till stöd för "genererade kolumner", vars värde beräknas baserat på ett uttryck som täcker värdena för andra kolumner i samma tabell (liknar vyer, men för enskilda kolumner). De genererade kolumnerna kan vara av två typer - lagrade och virtuella. I det första fallet beräknas värdet vid den tidpunkt då data läggs till eller ändras, och i det andra fallet beräknas värdet för varje avläsning baserat på det aktuella tillståndet för andra kolumner. För närvarande stöder PostgreSQL endast lagrade genererade kolumner;
  • Lade till möjligheten att fråga data från JSON-dokument med hjälp av Banuttryck, påminner om XPath och definieras i SQL/JSON-standarden. Befintliga indexeringsmekanismer används för att förbättra effektiviteten i behandlingen av sådana uttryck för dokument lagrade i JSONB-formatet;
  • Aktiverad som standard är användningen av en JIT-kompilator (Just-in-Time) baserad på LLVM-utvecklingar för att påskynda exekveringen av vissa uttryck under SQL-frågebehandling. Till exempel används JIT för att påskynda exekveringen av uttryck i WHERE-block, mållistor, aggregerade uttryck och vissa interna operationer;
  • Indexeringsprestanda har förbättrats avsevärt. B-tree-index är optimerade för att fungera i miljöer där index ändras ofta - TPC-C-tester visar en total ökning av prestanda och en genomsnittlig minskning av diskutrymmesförbrukningen på 40 %. Minskad overhead vid generering av WAL (Write Ahead Log) för GiST, GIN och SP-GiST indextyper. För GiST har möjligheten att skapa omslagsindex (via uttrycket INCLUDE) som inkluderar ytterligare kolumner lagts till. I drift SKAPA STATISTIK Ger stöd för MCV-statistik (Most Common Value) för att generera mer optimala frågeplaner vid användning av ojämnt fördelade kolumner;
  • Partitioneringsimplementeringen är optimerad för frågor som spänner över tabeller med tusentals partitioner, men är begränsad till att välja en begränsad delmängd av data. Prestandan för att lägga till data till partitionerade tabeller med INSERT- och COPY-operationer har ökat, och det är också möjligt att lägga till nya sektioner genom "ALTER TABLE ATTACH PARTITION" utan att blockera exekveringen av frågor;
  • Tillagt stöd för automatisk inline-expansion av generaliserade tabelluttryck (Vanligt tabelluttryck, CTE) som tillåter användning av temporära namngivna resultatuppsättningar som specificeras med WITH-satsen. Inline-distribution kan förbättra prestandan för de flesta frågor, men används för närvarande endast för icke-rekursiva CTE:er;
  • Lagt till stöd icke-deterministiskt egenskaper för lokalen "Sortering", som låter dig ställa in sorteringsregler och matchningsmetoder med hänsyn till betydelsen av tecken (till exempel vid sortering av digitala värden, närvaron av ett minus och en punkt framför ett nummer och olika typer stavning beaktas, och vid jämförelse beaktas inte fallet med tecken och närvaron av ett accenttecken) ;
  • Lagt till stöd för multi-factor klientautentisering, där du i pg_hba.conf kan kombinera SSL-certifikatautentisering (clientcert=verify-full) med en extra autentiseringsmetod som scram-sha-256 för autentisering;
  • Lagt till stöd för kryptering av kommunikationskanalen vid autentisering via GSSAPI, både på klientsidan och på serversidan;
  • Tillagt stöd för att fastställa LDAP-servrar baserade på "DNS SRV"-poster om PostgreSQL är byggt med OpenLDAP;
  • Lade till operation "REINDEXERA SAMTIDIGT» att bygga om index utan att blockera skrivoperationer till indexet;
  • Team lagt till pg_checksums, som låter dig aktivera eller inaktivera kontroll av kontrollsummor för datasidor för en befintlig databas (tidigare stöddes denna operation endast under databasinitiering);
  • Tillhandahåller utdata av förloppsindikator för operationer CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL och pg_checksums;
  • Lade till kommando "SKAPA TILLGÅNGSMETOD» för att ansluta hanterare för nya tabelllagringsmetoder optimerade för olika specifika uppgifter. För närvarande är den enda inbyggda tabellåtkomstmetoden "heap";
  • Konfigurationsfilen recovery.conf har slagits samman med postgresql.conf. Som indikatorer på övergången till tillståndet av återhämtning efter ett misslyckande, nu måste vara använd recovery.signal och standby.signal-filer.

Källa: opennet.ru

Lägg en kommentar