PÀrast aasta arendust on vÀlja antud uus stabiilne PostgreSQL 17 andmebaasi versioon. Uuendusi sellele versioonile antakse vÀlja viie aasta jooksul kuni novembri 2029. Toetamine PostgreSQL 12.x, kÔige vanemat toetatavat versiooni, lÔppeb 14. novembril.
Peamised uuendused:
- VACUUM-i (prĂŒgi kogumise, puhastamise ja kettaruumide pakkimise) toimingute kĂ€igus on kasutusele vĂ”etud uus andmestruktuur, mis tarbib kuni 20 korda vĂ€hem mĂ€lu. Ăleminek uuele struktuurile on vĂ”imaldanud kiirendada VACUUM-i toimingute tĂ€itmist ja vĂ€hendada jagatud ressursside kasutamist.
- Sisendi/vĂ€ljundi jĂ”udluse optimeerimist on jĂ€tkatud. WAL (kirjutamise viivituse logi) töötlemise koodi tĂ€iustamise tĂ”ttu on suudetud suurendada kirjutamise lĂ€bilaskevĂ”imet sĂŒsteemides, kus toimub suur hulk samaaegseid pĂ€ringute tĂ€itmisi, kuni kaks korda. Pakutakse uut voogedastuse liidest, mis vĂ”imaldab kiirendada andmete jĂ€rjestikust sirvimist tabelites ja kiirendada statistika vĂ€rskendamist pĂ€ringute planeerijale pĂ€rast ANALYZE toimingu tĂ€itmist.
- JĂ”udlust on parandatud pĂ€ringutes, kus kasutatakse âINâ avaldist, kui neis kasutatakse B-tree struktuuri pĂ”hjal koostatud indekseid. BRIN (Block Range Index) indeksite paralleelse loomise vĂ”imalus on ellu viidud. PĂ€ringute planeerijas on optimeeritud âNOT NULLâ kontrollid ja kiirendatud ĂŒldiste tabeli avalduste (Common Table Expression, CTE), mida mÀÀratletakse SQL-kĂ€suga âWITHâ, töötlemist. Kindel on vektorprotsessorite juhiste (SIMD) kasutamine mĂ”nede arvutuste kiirendamiseks, nĂ€iteks bit_count funktsiooni kiirendamiseks on kasutatud AVX-512 juhiseid.
- Toetust on rakendatud uutele funktsioonidele JSON-formaadis töötamiseks, nagu on mÀÀratletud SQL/JSON standardis. Lisatud on JSON-TABLE funktsioon, et teisendada andmeid JSON-formaadist PostgreSQL tavate tabeliteks, ning uued jsonpath operaatorid JSON andmete PostgreSQL jaoks loomulikeks andmetĂŒĂŒpideks teisendamiseks. Pakutakse uusi funktsioone JSON andmete loomiseks (JSON, JSON_SCALAR ja JSON_SERIALIZE) ja pĂ€rimiseks (JSON_EXISTS, JSON_QUERY ja JSON_VALUE).
- SQL-kĂ€skommandi âMERGEâ vĂ”imaldab luua tingimuslikke SQL-lauseid, mis ĂŒhendavad ĂŒhe lause sees INSERT, UPDATE ja DELETE toimingud. Lisatud on RETURNING lause tugi, mis vĂ”imaldab arvutada ja tagastada vÀÀrtusi lisatud, uuendatud vĂ”i kustutatud ridade pĂ”hjal. Toetatakse ka vaadete uuendamist.
- Andmete laadimise ja eksportimise vĂ”imalusi on laiendatud, et toetada partii reĆŸiimi. COPY kĂ€sus on suurendatud ekspordi kiirus kuni kahekordselt suurte ridade puhul, optimeeritud on kopeerimine, kui alg- ja sihtkoodid ĂŒhtivad, ning lisatud ON_ERROR valik, mis vĂ”imaldab jĂ€tkata importimist ka andmete lisamisel tekkinud vigade korral.
- Sektsioneeritud tabelite jaoks on lisatud tugi ainulaadsete identifikaatorite kasutamiseks ja pĂ€ringute optimeerimise tehnika âConstraint exclusionâ tugi.
- VĂ€liste tabelite ĂŒhendamise mehhanismis Foreign Data Wrapper (postgres_fdw) on rakendatud vĂ”imalus edastada vĂ€line server alampĂ€ringute âEXISTSâ ja âINâ.
- On loodud sisseehitatud platvormist sĂ”ltumatu mootor kohandamisreeglite âCollationâ töötlemiseks, mida kasutatakse sorteerimisreeglite ja tĂ€henduse arvestamise vĂ”rdlemise meetodite mÀÀratlemiseks (nĂ€iteks sorteerimisel arvestatakse numbrite ees olevate miinus- ja punktisĂŒmbolite olemasolu ning erinevaid kirjutamisviise, samas kui vĂ”rdlemisel ei arvestata sĂŒmbolite suurust ja aktsentide olemasolu). Uus mootor tagab ĂŒhtse kĂ€itumise pĂ€ringute tulemuste sorteerimisel, olenemata sellest, millisel platvormil PostgreSQL-i kĂ€itatakse.
- Loogilise replikatsiooni mehhanismis, mis vĂ”imaldab andmebaasi muudatuste edastamist teisele serverile salvestamise, kustutamise vĂ”i uuendamise kĂ€igus, on lihtsustatud DBMS-i uuendamise protsess. Kui varem tuli suurele versioonile ĂŒlemisel juhul eemaldada loogilise replikatsiooni slotid ja andmed uuesti sĂŒnkroonida, siis nĂŒĂŒd saab teha seda ilma slottide eemaldamiseta. Rikkete taluvate konfiguratsioonide jaoks on rakendatud tugi tĂ”rketaluvusele ĂŒleminekule alternatiivserverile (failover) loogilise replikatsiooni jaoks. Uus tööriist pg_createsubscriber on lisatud fĂŒĂŒsilise repliigi muutmiseks uueks loogiliseks repliigiks.
- Lisatud uus valik «sslnegotiation» otse TLS-ĂŒhenduste lepingu sĂ”lmimiseks, kasutades TLS-i laiendust ALPN.
- Rakendatud on ette mÀÀratud roll pg_maintain, mis annab kasutajale Ôiguse teha andmebaasi haldamisega seotud toiminguid.
- Tööriista pg_basebackup, mida kasutatakse andmebaasi varukoopiate loomiseks, on lisatud toetust inkrementaalsetele varukoopiatele. TĂ€isvarukoopia rekonstrueerimiseks inkrementaalsete koopiate kogumist on ette nĂ€htud uus tööriist pg_combinebackup. Tööriista pg_dump on lisatud valik «âfilter» sealsete objektide valimiseks, mis lisatakse varukoopiale.
- KĂŒsimuste analĂŒĂŒsimisel SQL-komandiga «EXPLAIN» on rakendatud kohalike plokkide lugemiseks ja kirjutamiseks kulunud aja kuvamine sisse-/vĂ€ljumise korral. Ka kĂ€skluses «EXPLAIN» on lisatud kaks uut valikut «MEMORY» ja «SERIALIZE», millega saab mÀÀrata kasutatud mĂ€lu suuruse ja aja, mis kulus andmete vormindamisele vĂ”rgu edastamiseks.
- Töötlemise kÀigus VACUUM operatsiooni edenemist nÀidatakse.
- Lisatud sĂŒsteemne vaade pg_wait_events, mis koos vaatega pg_stat_activity vĂ”imaldab sĂŒvitsi uurida, miks aktiivsed sessioonid on ooteolekus.
Allikas: opennet.ru
