PostgreSQL 12 release

PostgreSQL-teamet har tillkännagett lanseringen av PostgreSQL 12, den senaste versionen av hanteringssystemet för relationsdatabas med öppen källkod.
PostgreSQL 12 har avsevärt förbättrat frågeprestanda - speciellt när man arbetar med stora datamängder, och har även optimerat användningen av diskutrymme i allmänhet.

Nya funktioner inkluderar:

  • implementering av frågespråket JSON Path (den viktigaste delen av SQL/JSON-standarden);
  • optimering av exekvering av vanliga tabelluttryck (WITH);
  • stöd för genererade kolumner

Gemenskapen fortsätter också att arbeta med utökbarheten och tillförlitligheten för PostgreSQL, utvecklar stöd för internationalisering, autentiseringsmöjligheter och tillhandahåller enklare sätt att administrera systemet.

Den här utgåvan inkluderar implementeringen av ett gränssnitt för pluggbara lagringsmotorer, vilket nu tillåter utvecklare att skapa sina egna datalagringsmetoder.

Prestanda förbättringar

PostgreSQL 12 innehåller betydande prestanda- och underhållsförbättringar för indexering och partitioneringssystem.

B-tree-index, standardindexeringstypen i PostgreSQL, har optimerats i version 12 för arbetsbelastningar som involverar frekventa indexändringar. Att använda TPC-C-riktmärket för PostgreSQL 12 visade en genomsnittlig minskning av utrymmesanvändning med 40 % och en total ökning av frågeprestanda.

Frågor mot partitionerade tabeller har fått märkbara förbättringar, särskilt för tabeller som består av tusentals partitioner som kräver att man arbetar med endast begränsade delar av datamatriserna. Prestandan för att lägga till data till partitionerade tabeller med hjälp av INSERT och COPY har förbättrats, liksom möjligheten att bifoga en ny partition utan att blockera frågor.

PostgreSQL 12 har gjort ytterligare förbättringar av indexering som påverkar övergripande prestanda, inklusive:

  • reducerad overhead vid generering av WAL för GiST, GIN och SP-GiST indextyper;
  • möjligheten att skapa så kallade täckande index (INCLUDE-klausul) på GiST-index;
  • förmågan att utföra "närmaste granne"-frågor (k-NN-sökning) med avståndsoperatören (<->) och använda SP-GiST-index;
  • stöd för att samla in mest-common value (MCV)-statistik med hjälp av CREATE STATISTICS, vilket hjälper till att få bättre frågeplaner när du använder kolumner vars värden är ojämnt fördelade.

JIT-kompilering med LLVM, introducerad i PostgreSQL 11, är nu aktiverad som standard. JIT-kompilering förbättrar prestandan när man arbetar med uttryck i WHERE-satser, mållistor, aggregat och vissa interna operationer. Det är tillgängligt om du har kompilerat PostgreSQL med LLVM eller använder ett PostgreSQL-paket som byggdes med LLVM aktiverat.

Förbättringar av SQL-språkkapacitet och standardkompatibilitet

PostgreSQL 12 introducerade möjligheten att fråga JSON-dokument med JSON-sökvägsuttryck definierade i SQL/JSON-standarden. Sådana frågor kan utnyttja befintliga indexeringsmekanismer för dokument lagrade i JSONB-format för att effektivt hämta data.

Vanliga tabelluttryck, även kända som WITH-frågor, kan nu exekveras automatiskt med hjälp av substitution i PostgreSQL 12, vilket i sin tur kan hjälpa till att förbättra prestandan för många befintliga frågor. I den nya versionen kan en substitutionsdel av en WITH-fråga endast köras om den inte är rekursiv, inte har några biverkningar och endast refereras en gång i en efterföljande del av frågan.

PostgreSQL 12 introducerar stöd för "genererade kolumner". Denna kolumntyp, som beskrivs i SQL-standarden, beräknar ett värde baserat på innehållet i andra kolumner i samma tabell. I denna version stöder PostgreSQL "lagrade genererade kolumner", där det beräknade värdet lagras på disk.

Internationalisering

PostgreSQL 12 utökar stödet för ICU-kollationer genom att tillåta användare att definiera "icke-deterministiska kollationer" som till exempel kan tillåta skiftlägesokänsliga eller accentokänsliga jämförelser.

autentisering

PostgreSQL utökar sitt stöd för starka autentiseringsmetoder med flera förbättringar som ger ytterligare säkerhet och funktionalitet. Den här versionen introducerar kryptering på klientsidan och serversidan för autentisering över GSSAPI-gränssnitt, samt möjligheten för PostgreSQL att upptäcka LDAP-servrar när PostgreSQL kompileras med OpenLDAP.

Dessutom stöder PostgreSQL 12 nu ett alternativ för multifaktorautentisering. PostgreSQL-servern kan nu kräva att klienten tillhandahåller ett giltigt SSL-certifikat med motsvarande användarnamn med hjälp av clientcert=verify-full, och kombinera detta med ett separat krav på autentiseringsmetod (t.ex. scram-sha-256).

administration

PostgreSQL 12 introducerade möjligheten att utföra icke-blockerande indexombyggnader med kommandot REINDEX CONCURRENTLY. Detta tillåter användare att undvika DBMS-avbrott under långa indexombyggnader.

Dessutom, i PostgreSQL 12, kan du aktivera eller inaktivera sidkontrollsummor i ett avstängningskluster med kommandot pg_checksums. Tidigare kunde sidkontrollsummor, en funktion som hjälper till att verifiera integriteten hos data lagrade på disken, endast aktiveras när PostgreSQL-klustret initierades med initdb.

Källa: linux.org.ru

Lägg en kommentar