sql >> Databasteknik >  >> RDS >> PostgreSQL

Bästa nya funktioner i PostgreSQL 14

Enligt StackOverflow är PostgreSQL den mest populära databasen med öppen källkod, med fler och fler utvecklare och administratörer som vill arbeta med den. PostgreSQL 14, den senaste versionen som släpptes i september 2021, har mer än 200 förbättringar och nya funktioner, som i stort sett delas in i tre områden:säkerhet, prestanda och övervakning.

Från och med version 1.9.2, som släpptes tidigare i år, stöder ClusterControl nu den senaste versionen av PostgreSQL 14.

I det här inlägget kommer vi att titta på de mest anmärkningsvärda funktionerna, stora uppdateringarna och förbättringarna som finns tillgängliga i PostgreSQL 14.

Säkerhet

PostgreSQL 14:s viktigaste säkerhetsändring går över till SCRAM som standardautentisering efter att SCRAM-SHA-256-autentisering först introducerades i PostgreSQL 10.  SCRAM ger en mycket enklare och kraftfullare lösning för att reglera efterlevnad av data säkerhet. Den tidigare standard-MD5-autentiseringen har haft några utnyttjade svagheter tidigare.

På sidan av förbättrad autentisering förenklar PostgreSQL 14 processen att tilldela skrivskyddade och skrivskyddade funktioner till användare på tabeller, vyer och scheman genom att introducera två fördefinierade roller, pg_write_all_data och pg_read_all_data. Den förstnämnda rollen gör det bekvämt att skapa superanvändarlika privilegier. Trots att det är praktiskt för aktiviteter och åtkomst måste denna typ av konto användas sparsamt. Den senare rollen gör det praktiskt att ge skrivskyddad åtkomst för en användare till alla tabeller, scheman och vyer i databasen. Den här rollen kommer som standard att ha läsbehörighet till alla nyskapade tabeller.

Prestanda

Företag bearbetar mer och mer data, och hastigheten, volymen och variationen (de tre mot Big Data) visar inga tecken på att sakta ner. PostgreSQL 14 har gjort några mycket betydande förändringar för att kunna skala upp och ut för att stödja dessa arbetsbelastningar och förbättra prestanda. Detta kan bäst grupperas i följande fem områden:

Skalbarhet och prestanda

PostgreSQL 14 levererar enorma prestationer i prestanda för borttagningar och uppdateringar på tabeller med ett stort antal partitioner. Detta gör att raderingar och uppdateringar av partitionerade tabeller kan använda partitionsbeskärning vid körningstid. Det viktigaste är att den här versionen kan skalas till fler partitioner än tidigare, vilket gör att PostgreSQL kan hantera mycket större databaser än vad som tidigare var möjligt.

I PostgreSQL version 14 kan partitioner nu också tas bort samtidigt, vilket gör det lättare att hantera stora tidsseriedatatabeller. Detta är möjligt tack vare den nya date_bin()-funktionen, som gör det möjligt för användare att sammanfatta tidsseriedata i datumintervall bättre och enklare.

PostgreSQL 14 lade till stöd för LZ4-komprimering för TOAST. LZ4 använder den senaste komprimeringstekniken och fokuserar på att förbättra hastigheten för dekompression och komprimering av dokumentdata. LZ4 kommer att förbättra applikationer med större XML- och JSON-dokument, och denna komprimeringsalgoritm kan konfigureras på både system- och kolumnnivå.

Distribuerade databaser och arbetsbelastningar

PostgreSQL 14 erbjuder också förbättringar i att horisontellt skala en databas genom att introducera två stora förbättringar i postgres_fdw (utländsk dataomslag) som är avgörande för att förbättra prestanda för distribuerade databaser. Dessa ändringar stöder massinsättning av data och parallella tabellsökningar på främmande tabeller (när async_capable är inställt).

Anslutningscache förbättrar också prestandan genom att tillåta anslutningar att vara öppna över transaktioner. Vi kan också nämna Libpd-pipeline-läget, som ökar prestandan hos distribuerade databaser genom att tillåta strömmar av ändringar att överföras utan att vänta på nätverksbekräftelse på varje kommando.

Hanterbarhet 

PostgreSQL 14 tar också upp problemet med B-tree index bloat; index som ofta uppdateras sväller över tiden på grund av döda tupler som kan tas bort genom att köra ett vakuum.

På grund av detta kan en oåterkallelig siddelning orsakas av en infogning eller uppdatering när sidan fylls på mellan vakuum. Den här versionen har förbättrat vakuumprocessen genom att detektera och ta bort döda tuplar mellan dammsugare (INDEX_CLEANUP-parametern är inställd på Auto).

En annan förbättring av vakuumsystemet är att ta bort raderade sidor ivrigt. I tidigare versioner tog borttagning av raderade sidor två vakuumcykler, genom att först markera sidan som borttagen och den andra cykeln faktiskt frigöra det utrymmet.

Fråge- och indexprestandajustering

Indexhantering i applikationsinställning är en annan stor förbättring i PostgreSQL 14. I synnerhet tillåter REINDEXERA SAMTIDIGT och SKAPA INDEX SAMTIDIGT att flera kommandon körs samtidigt utan att störa varandra. Mer om index, BRIN-index har blivit mer flexibla eftersom de kan registrera många min/max-värden per intervall, vilket är värdefullt för grupper av värden i varje sidintervall. Dessutom fungerar BRIN-index effektivt med data som inte är vällokaliserade i högen genom att använda blomfilter.

Frysningsalternativet i kommandot COPY har förbättrats genom att uppdatera sidsynlighetsbitar för dataladdningsprestanda. COPY i binärt läge är nu också snabbare.

PostgreSQL 14 har förfinat frågeparallellism genom att lägga till frågeparallellism till REFRESH MATERIALIZED VIEW och RETURN QUERY. Dessa förbättringar har rullats ut till kapslade loop-kopplingar och parallella sekventiella skanningar.

PostgreSQL 14 har ökat antalet platser utökad statistik kan användas för uttryck och OR-satsuppskattning. Till skillnad från tidigare, där statistik bara var på kolumner, är det nu tillåtet på en grupp av uttryck. Systemvy pg_stats_ext_exprs rapporterar sådan statistik.

Förbättrad logisk replikering 

Logisk replikering har förbättrats för att möjliggöra streaming av långa pågående transaktioner via API:et eller till prenumeranter. I tidigare versioner skrevs transaktioner större än logical_decoding_work_mem till disk tills transaktionen slutfördes innan transaktionen replikerades till abonnenten. Med de nya förbättringarna på plats hanterar logisk replikering stora volymer DDL-satser mer effektivt.

Efter varje kommando skriver logisk replikering meddelanden om cache-ogiltigförklaring till WAL för bearbetning genom att streama pågående transaktioner. Denna process skapar betydande prestandafördelar.

Övervakning 

Ett av de största modeorden 2022 är övervakning, eftersom administratörer och utvecklare vill ha mer insikt i prestanda över tid. PostgreSQL 14 har introducerat nya funktioner för att hjälpa till med övervakning. Den viktigaste förändringen av dem alla är flyttningen av frågehashsystemet från pg_stat_statement till kärndatabasen. Frågeövervakning har tillåtits över flera PostgreSQL-system och loggningsfunktioner genom att använda ett enda ID.

Den här versionen har också introducerat följande nya övervakningsparametrar:

  1. Idle_session_timeout

  2. REINDEX på underordnade index för en partitionerad tabell

  3. Maintenance_io_concurrency

  4. Pg_stat_progress_copy

  5. Pg_stat_wal

Uppgraderar till PostgreSQL 14

Om du vill uppgradera din nuvarande PostgreSQL-version till version 14, har du tre huvudalternativ som kommer att utföra denna uppgift:

  1. Pg_dumpall:Det är ett logiskt säkerhetskopieringsverktyg som låter dig dumpa din data och återställa den i nya PostgreSQL version. Här kommer du att ha en stilleståndsperiod som kommer att variera beroende på din datastorlek. Du måste stoppa systemet eller undvika ny data i den primära noden, köra pg_dumpall, flytta den genererade dumpen till den nya databasnoden och återställa den. Under denna tid kan du inte skriva in i din primära PostgreSQL-databas för att undvika datainkonsekvens.

  2. Pg_upgrade:Det är ett PostgreSQL-verktyg för att uppgradera din PostgreSQL-version. Det kan vara farligt i en produktionsmiljö, och vi rekommenderar inte den här metoden i så fall. Om du använder den här metoden kommer du att ha stillestånd, men det kommer förmodligen att vara betydligt mindre än med den tidigare pg_dump-metoden.

  3. Logisk replikering:Sedan PostgreSQL 10 kan du använda denna replikeringsmetod som låter dig utföra större versionsuppgraderingar med noll (eller nästan noll) stilleståndstid. På detta sätt kan du lägga till en standby-nod i den senaste PostgreSQL-versionen, och när replikeringen är uppdaterad kan du utföra en failover-process för att främja den nya PostgreSQL-noden.

För mer detaljerad information om de nya PostgreSQL 14-funktionerna kan du se den officiella dokumentationen.

Avsluta

PostgreSQL 14 har verkligen höjt spelet för användare av denna populära databas med öppen källkod. Nu har utvecklare och administratörer förbättrade möjligheter för att öka hög prestanda och skalbarhet, förbättringar för distribuerade databaser, förbättrad observerbarhet och mer.

ClusterControl gör uppgraderingen till de senaste teknikversionerna enkel och stressfri. Om du inte redan använder ClusterControl kan du utvärdera det gratis i 30 dagar. För mer information om den senaste versionen av ClusterControl 1.9.2, kolla in de fullständiga utgåvorna.

Håll dig uppdaterad med alla de senaste nyheterna och bästa praxis för de mest populära databaserna med öppen källkod genom att följa oss på Twitter och LinkedIn och prenumerera på vårt nyhetsbrev.


  1. Hur man hittar ett listobjekt på en specificerad position i SQL Server

  2. Hur validerar man e-postadress med PL/SQL?

  3. Versionering av SQL Server-databas

  4. SQL rader till kolumner