Kot je bilo predstavljeno leto za letom med septembrom oktobrom, Napovedan je bil začetek nove različice PostgreSQL 17 in kot v vseh prejšnjih različicah, Prioriteta ostaja izboljšanje zmogljivosti in optimizacija virov, zlasti za operacije, kot so VACUUM, I/O in poizvedbe, medtem ko je najpomembnejša nova funkcija te izdaje inkrementalno varnostno kopiranje.
Za poslovne uporabnike posodobitev prinaša številne izboljšave, ki poenostavljajo upravljanje in uporabo baze podatkov. Čeprav je bil PostgreSQL v preteklosti relacijska baza podatkov, ta različica širi svojo integracijo z napredno funkcionalnostjo za delo z dokumenti JSON, funkcijo, ki je običajno povezana z MongoDB Atlas.
Kaj je novega v PostgreSQL 17
V tej novi različici PostgreSQL 17, ki je predstavljena, a nova struktura podatkov v operaciji VACUUM, kar zmanjša porabo pomnilnika do 20-krat, kar omogoča, da so te operacije hitrejše in učinkovitejše v smislu skupnih virov.
Na strani Izboljšave zmogljivosti, upravljanje zapisovanja nazaj (WAL) je bil optimiziran in dosega do dvakratno zmogljivost pisanja v sistemih z veliko sočasnimi poizvedbami. Predlagano je bilo a Pretočni V/I vmesnik za izboljšanje zaporednega iskanja in posodabljanje statistike po izvedbi operacije ANALIZA.
Poleg tega izboljšave so bile implementirane v poizvedbah s klavzulami »IN«. z uporabo indeksov B-drevesa, kot tudi vzporedne konstrukcije indeksov BRIN so bili implementirani, preverjanja "NOT NULL" so bila optimizirana in obdelava skupnih tabelnih izrazov (CTE) je bila pospešena, za intenzivne izračune pa so vključeni SIMD navodila, kot je AVX-512, za pospešitev operacij, kot je funkcija `bit_count`.
Druga novost, ki izstopa, je nove funkcije za JSON, od Uporabniki lahko zdaj poizvedujejo po vrstah podatkov JSON s standardnimi ukazi SQL. To je mogoče zaradi nove funkcionalnosti tabele json, ki podatke JSON pretvori v tabelarično strukturo. Od tam lahko uporabniki izvajajo poizvedbe s klavzulo FROM v SQL, kar omogoča vrnitev podatkov v relacijski obliki. Dodana funkcija `JSON_TABLE` za pretvorbo podatkov JSON v standardne tabele PostgreSQL.
The nova funkcija inkrementalne varnostne kopije v PostgreSQL 17 to omogoča varnostno kopiranje samo sprememb, ki so bile narejene od zadnje varnostne kopije polno ali inkrementalno, kar optimizira uporabo pasovne širine in zmanjša prostor za shranjevanje. Čeprav je PostgreSQL že ponujal rešitve, kot je arhiviranje WAL, ki je kopiralo dnevnik vnaprejšnjega pisanja (WAL) za vzdrževanje potrebnih razdelkov baze podatkov, različica 17 prvič uvaja izvorni mehanizem za izvajanje inkrementalnih kopij. Ta sistem ne le zmanjša prekinitve med delovanjem z manjšim vplivom na delovanje, ampak tudi bistveno skrajša čase obnovitve, kar je ključni vidik, saj je obnavljanje varnostnih kopij običajno počasen in zaskrbljujoč postopek za uporabnike.
Izveden motor, neodvisen od platforme za obdelavo področnih lastnosti, kar omogoča dosledno vedenje pri razvrščanju rezultatov poizvedbe. Ta mehanizem pri razvrščanju vrednosti upošteva dejavnike, kot so prisotnost posebnih znakov in občutljivost na velike in male črke. Mehanizem logičnega podvajanja zdaj poenostavlja postopek nadgradnje baze podatkov brez potrebe po brisanju logičnih rež za podvajanje ali ponovni sinhronizaciji podatkov pri selitvi na novo različico.
Od druge spremembe, ki izstopajo:
- Izvoz dolgih nizov z ukazom `COPY` je bil pospešen do dvakrat.
- Optimizirano kopiranje, ko se izvorno in ciljno kodiranje ujemata.
- Dodana je bila možnost `ON_ERROR`, ki omogoča nadaljevanje uvoza kljub napakam pri vstavljanju podatkov.
- Dodana možnost uporabe stolpcev z edinstvenimi identifikatorji v particioniranih tabelah.
- Implementirana funkcija samodejnega preklopa za preklop na rezervni strežnik v konfiguracijah, odpornih na napake.
- Dodan nov pripomoček pg_createsubscriber za pretvorbo fizične replike v logično repliko.
- Uvedena možnost »sslnegotiation« za neposredno pogajanje o varnih povezavah TLS z uporabo razširitve ALPN TLS.
- Dodana vnaprej določena vloga pg_maintain, ki daje uporabnikom pravico do izvajanja operacij, povezanih z vzdrževanjem DBMS
Nazadnje, če vas zanima več o tem, se lahko posvetujete s podrobnostmi V naslednji povezavi.