Efter ett Ärs utveckling publiceras den nya stabila versionen av databashanteraren PostgreSQL 15. Uppdateringar för den nya versionen kommer att slÀppas under fem Är fram till november 2027.
Huvudsakliga nyheter:
- Stöd för SQL-kommandot "MERGE" har lagts till, vilket pÄminner om uttrycket "INSERT ⊠ON CONFLICT". MERGE gör det möjligt att skapa villkorliga SQL-uttryck som sammanfogar operationer som INSERT, UPDATE och DELETE i ett enda uttryck. Till exempel kan MERGE anvÀndas för att sammanfoga tvÄ tabeller genom att införa saknade poster och uppdatera befintliga. MERGE INTO customer_account ca USING recent_transactions t ON t.customer_id = ca.customer_id WHEN MATCHED THEN UPDATE SET balance = balance + transaction_value WHEN NOT MATCHED THEN INSERT (customer_id, balance) VALUES (t.customer_id, t.transaction_value);
- Algoritmerna för sortering av data i minnet och pÄ disk har förbÀttrats avsevÀrt. Beroende pÄ datatyp har tester visat en ökning av sorteringshastigheten med mellan 25 % och 400 %.
- Prestandan för fönsterfunktioner med row_number(), rank(), dense_rank() och count() har förbÀttrats.
- Det har implementerats möjlighet för parallell körning av frÄgor med uttrycket "SELECT DISTINCT".
- I mekanismen för att ansluta externa tabeller, Foreign Data Wrapper (postgres_fdw), har stöd för asynkrona commits lagts till, utöver den tidigare tillagda möjligheten för asynkron bearbetning av förfrÄgningar till externa servrar.
- Möjligheten att anvÀnda algoritmerna LZ4 och Zstandard (zstd) för komprimering av WAL-loggar för transaktioner har lagts till, vilket under vissa belastningar gör det möjligt att bÄde öka prestandan och spara diskutrymme. För att förkorta ÄterstÀllningstiden efter fel har stöd för förhandsutvinning av sidor, som förekommer i WAL-loggen, lagts till.
- I verktyget pg_basebackup har stöd för komprimering av backupfiler pÄ serversidan lagts till, servern, med anvÀndning av metoderna gzip, LZ4 eller zstd. Det har ocksÄ tillhandahÄllits en möjlighet att anvÀnda egna moduler för arkivering, vilket gör det möjligt att undvika körning av shell-kommandon.
- En serie nya funktioner för strÀnghantering med reguljÀra uttryck har lagts till: regexp_count(), regexp_instr(), regexp_like() och regexp_substr().
- Möjlighet att aggreggera mÄnga intervalltyper ("multirange") har lagts till i funktionen range_agg().
- En lÀge security_invoker har lagts till, vilket gör det möjligt att skapa vyer som körs med den anropande anvÀndarens rÀttigheter, snarare Àn skaparen av vyns rÀttigheter.
- För logisk replikering har stöd för radfiltrering och angivande av kolumnlistor implementerats, vilket möjliggör att skicka ett delmÀngd av data frÄn tabellen för replikering. Dessutom har hanteringen av konflikter förenklats i den nya versionen, med möjlighet att hoppa över konfliktande transaktioner och automatiskt avaktivera prenumerationen vid upptÀckta fel. Vid logisk replikering Àr anvÀndning av tvÄfaser-commits (2PC) tillÄten.
- Ett nytt logformat â jsonlog har lagts till, som sparar information i strukturerad form, med hjĂ€lp av JSON-format.
- Administratören har möjligheten att delegera specifika befogenheter till anvÀndare för att Àndra vissa parametrar. serverkonfigurationen PostgreSQL.
- I verktyget psql har stöd för att söka information om instÀllningar (pg_settings) lagts till med kommandot «\dconfig».
- AnvÀndning av delat minne för att samla statistik om serverns arbete har sÀkerstÀllts, vilket gjort det möjligt att eliminera en separat statistikinsamlingsprocess och periodiska tillstÄndsbackuper till disk.
- Möjlighet att anvÀnda ICU-lokaler som standard för «ICU Collation» har tillhandahÄllits, tidigare kunde endast libc-lokaler anvÀndas som standardlokal.
- Ett inbyggt tillÀgg pg_walinspect har föreslagits, vilket möjliggör inspektion av innehÄllet i WAL-loggfiler med hjÀlp av SQL-frÄgor.
- För schemat public har alla anvÀndare utom databassens Àgare fÄtt sina rÀttigheter att utföra kommandot CREATE Äterkallade.
- I PL/Python har stödet för Python 2 avvecklats. Den förÄldrade exklusiva sÀkerhetskopieringsmetoden («exclusive backup») har tagits bort.
TillÀgg: FrÄn 19:00 till 20:00 (MSK) kommer en webbseminarium om Àndringarna i den nya versionen med Pavel Luzanov (Postgres Professional) att hÄllas. För dem som inte kan delta i live-sÀndningen finns inspelningen av Pavels juni-presentation «PostgreSQL 15: MERGE och mer» tillgÀnglig pÄ PGConf.Russia.
KĂ€lla: opennet.ru
