PÀrast aasta pikkust arendust on avaldatud uus stabiilne PostgreSQL 15 andmebaasi versioon. Uue versiooni vÀrskendusi antakse vÀlja jÀrgnevate viie aasta jooksul kuni novembrini 2027.
PÔhilised uuendused:
- Lisatud on tugi SQL-kĂ€sule âMERGEâ, mis meenutab vĂ€ljendit âINSERT ⊠ON CONFLICTâ. MERGE vĂ”imaldab luua tingimuslikke SQL-vĂ€ljendeid, mis ĂŒhendavad ĂŒhes vĂ€ljendis INSERT, UPDATE ja DELETE operatsioonid. NĂ€iteks MERGE abil saab korraldada kahe tabeli ĂŒhinemist, lisades puuduvad kirjed ja vĂ€rskendades olemasolevaid. 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);
- Oluliselt on paranenud mĂ€lus ja kettal andmete sortimise algoritmid. SĂ”ltuvalt andmetĂŒĂŒbist on testides tĂ€heldatud sortimise kiirusetĂ”usu vahemikus 25% kuni 400%.
- Windowsi funktsioonide töö, sealhulgas row_number(), rank(), dense_rank() ja count() on kiirendatud.
- Oleneb vĂ”imalik paralleelne pĂ€ringute tĂ€itmine vĂ€ljendiga âSELECT DISTINCTâ.
- VĂ€liste tabelite Foreign Data Wrapper (postgres_fdw) ĂŒhendamise mehhanismis on rakendatud toe asĂŒnkroonsetele commit'idele, lisaks varasemalt lisatud vĂ”imekusele asĂŒnkroonsete pĂ€ringute töötlemiseks vĂ€listele serveritele.
- On lisatud vĂ”imalus rakendada LZ4 ja Zstandard (zstd) algoritme tehingute WAL-logide tihendamiseks, mis teatud koormuste korral vĂ”imaldab samal ajal suurendada jĂ”udlust ja sÀÀsta kettaruumi. Krahhi taastumise aega lĂŒhendamiseks on lisatud toetus ettevaatlikule lehtede hankimisele, mis esinevad WAL-logis.
- Tööriista pg_basebackup on lisatud toe failide tihendamisele varukoopiate poolel, serverid, kasutades meetodeid gzip, LZ4 vÔi zstd. On antud vÔimalus kasutada kohandatud arhiivimise module, mis vÔimaldab ilma shell-kommandosid kÀivitamata hakkama saada.
- On lisatud uus funktsioonide seeria stringide töötlemiseks regulaaravaldiste abil: regexp_count(), regexp_instr(), regexp_like() ja regexp_substr().
- Funktsiooni range_agg() on lisatud vĂ”imalus mitme vahemiku tĂŒĂŒbi («multirange») agregatsiooniks.
- Lisatud on security_invoker reĆŸiim, mis vĂ”imaldab luua vaateid, mis tĂ€idetakse kutse tegeva kasutaja Ă”igustega, mitte vaate looja Ă”igustega.
- Loogilise replikatsiooni jaoks on rakendatud ridade filtreerimise ja veergude loendite mÀÀramise toetust, mis vÔimaldab saatva poolel eristada andmete alamhulka replikatsiooniks tabelist. Uues versioonis on ka konfliktide haldamine lihtsustatud, nÀiteks on lisandunud vÔimalus vaidlustavaid tehinguid vahele jÀtta ja automaatselt tellimust katkestada, kui viga tuvastatakse. Loogilise replikatsiooni puhul on lubatud kahefaasilised kinnitamised (2PC).
- Lisatud uus logivorming â jsonlog, mis salvestab teavet struktureeritud kujul, kasutades JSON formaati.
- Administraatorile on antud vÔimalus delegeerida kasutajatele teatud volitusi, et muuta kindlaid parameetreid. serveri seadistused PostgreSQL.
- Psql utiliiti on lisatud tugi seadistuste (pg_settings) otsimiseks kÀsu "\dconfig" kaudu.
- Serveri tööstatistika kogumiseks on tagatud jagatud mÀlu kasutamine, mis on vÔimaldanud loobuda eraldi statistika kogumise protsessist ja perioodilisest staatuse salvestamisest kettale.
- Eelemendi kasutamise vÔimalus vaikimisi ICU lokaalide «ICU Collation» kasutamiseks, varem sai vaikimisi kasutada ainult libc lokaale.
- Sisseehitatud laiendus pg_walinspect, mis vÔimaldab inspectida WAL-logifailide sisu SQL-pÀringute abil.
- Schemas public kÔigi kasutajate, vÀlja arvatud andmebaasi omanik, Ôiguste tagasivÔtmine CREATE kÀsu tÀitmiseks.
- PL/Pythonis on eemaldatud Python 2 tugi. Eemaldatud on ka aegunud eksklusiivne varundusreĆŸiim («exclusive backup»).
TĂ€iendav info: 19:00 kuni 20:00 (MSK) toimub veebiseminar uue versiooni muudatustest Pavel Luzanovi (Postgres Professional) juhtimisel. Need, kes ei saa otseĂŒlekandesse liituda, saavad vaadata Pavel juuni ettekande «PostgreSQL 15: MERGE ja mitte ainult» salvestust PGConf.Russia lehelt.
Allikas: opennet.ru
