Нашри PostgreSQL 14

Пас аз як соли рушд, як филиали нави устувори DBMS PostgreSQL 14 нашр шуд. Навсозиҳо барои филиали нав дар тӯли панҷ сол то моҳи ноябри соли 2026 бароварда мешаванд.

Навовариҳои асосӣ:

  • Дастгирии иловашуда барои дастрасӣ ба додаҳои JSON бо истифода аз ифодаҳои массив монанд: SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; SELECT * FROM test WHERE details['attributes']['size'] = '"medium"';

    Синтаксиси шабеҳ барои маълумоти калид/арзише, ки аз ҷониби навъи hstore пешниҳод шудааст, амалӣ карда мешавад. Ин синтаксис дар аввал бо истифода аз чаҳорчӯбаи универсалӣ амалӣ карда шуд, ки дар оянда метавонад барои дигар намудҳо истифода шавад. Намунаи навъи hstore: INSERT INTO VALUES mytable ('a=>b, c=>d'); Интихоб кунед h['a'] АЗ mytable; UPDATE mytable SET h['c'] = 'нав';

  • Оилаи намудҳо барои муайян кардани диапазонҳо бо навъҳои нави “бисёрқаторӣ” васеъ карда шуд, ки ба шумо имкон медиҳанд, ки рӯйхати тартибдодашудаи диапазонҳои ба ҳам мувофиқи арзишҳоро муайян кунед. Илова ба ҳар як намуди диапазони мавҷуда, навъи бисёрҷазираи худ пешниҳод карда мешавад, масалан, навъи “int4range” ба “int4multirange” ва навъи “daterange” ба “datemultirange” мувофиқат мекунад. Истифодаи навъҳои нав тарҳрезии дархостҳоро, ки пайдарпайии мураккаби диапазонҳоро идора мекунанд, осон мекунад. ИНТИХОБ '{[3,7), [8,9)}'::int4multirange; SELECT nummultirang(numara(1.0, 14.0), рақами(20.0, 25.0));
  • Барои беҳтар кардани кори системаҳои сербориши коркарди шумораи зиёди пайвастҳо оптимизатсияҳо анҷом дода шуданд. Дар баъзе санҷишҳо, ду маротиба афзоиши самаранокӣ мушоҳида мешавад.
  • Самаранокии индексҳои дарахти B беҳтар карда шуд ва мушкилоти афзоиши индекс ҳангоми навсозии ҷадвалҳо ҳал карда шуд.
  • Дастгирии иловагии тарафи муштарӣ (дар сатҳи libpq амалӣ карда мешавад) реҷаи интиқоли лӯлаи дархостҳо, ки ба шумо имкон медиҳад сенарияҳои пойгоҳи додаҳоро бо иҷрои шумораи зиёди амалиёти хурди навиштан (INSERT/UPDATE/DELETE) тавассути фиристодани дархости навбатӣ бидуни интизории натиҷаи қаблӣ. Режим инчунин ба суръатбахшии кор дар пайвастшавӣ бо таъхирҳои тӯлонии интиқоли бастаҳо кӯмак мекунад.
  • Имкониятҳои мукаммал барои конфигуратсияҳои тақсимшуда бо серверҳои сершумори PostgreSQL. Ҳангоми татбиқи репликатсияи мантиқӣ, ҳоло имкон пайдо мешавад, ки транзаксияҳоро дар реҷаи ҷараён фиристад, ки дар ҷараёни иҷро қарор доранд, ки метавонанд иҷрои такрори транзаксияҳои калонро ба таври назаррас беҳтар созанд. Илова бар ин, рамзгузории мантиқии маълумоте, ки ҳангоми такрори мантиқӣ гирифта шудааст, оптимизатсия карда шудааст.
  • Механизми пайваст кардани ҷадвалҳои берунии маълумот Wrapper (postgres_fdw) дастгирии коркарди мувозии дархостро илова кардааст, ки айни замон танҳо ҳангоми пайвастшавӣ ба серверҳои дигари PostgreSQL татбиқ мешавад. postgres_fdw инчунин дастгирии илова кардани маълумот ба ҷадвалҳои беруна дар реҷаи партия ва имкони воридоти ҷадвалҳои тақсимшударо тавассути муайян кардани дастури "ВОРОТИ СХЕМАИ ХОРИҶӢ" илова мекунад.
  • Барои татбиқи амалиёти ВАКУМ (ҷамъоварии партовҳо ва бастабандии нигаҳдории диск) оптимизатсияҳо анҷом дода шуданд. Ҳолати тозакунии фавқулодда илова карда шуд, ки агар шароити фарогирии ID транзаксия фароҳам оварда шавад, амалиёти тозакунии ғайримуқаррариро мегузаронад. Ҳангоми коркарди индексҳо дар формати B-Tree хароҷоти изофӣ кам карда мешавад. Ичрои амалиёти «ТАХЛИЛИ МАЪЛУМОТ», ки оморро дар бораи кори база чамъ мекунад, хеле тезонда шуд.
  • Илова қобилияти танзим кардани усули фишурдасозии дар системаи TOAST истифодашаванда, ки барои нигоҳ доштани маълумоти калон, ба монанди блокҳои матн ё иттилооти геометрӣ масъул аст. Илова ба усули фишурдани pglz, TOAST акнун метавонад алгоритми LZ4-ро истифода барад.
  • Воситахои назорати кори МБМ васеъ карда шуданд. Намоишҳои иловашуда барои пайгирии пешрафти фармонҳои COPY (pg_stat_progress_copy), омор дар бораи слотҳои такрорӣ (pg_stat_replication_slots) ва фаъолияти марбут ба сабти муомилоти WAL (pg_stat_wal). Функсияи compute_query_id илова карда шудааст, ки ба зерсистемаҳои гуногун, аз қабили pg_stat_activity ва EXPLAIN VERBOSE имкон медиҳад, ки дархостҳоро тавассути таъини идентификатори беназир барои ҳар як дархост пайгирӣ кунанд.
  • Барои беҳтар кардани коркарди мувозии дархостҳо ва беҳтар кардани иҷрои ҳамзамон амалиёти сканкунии пайдарпайи сабт, иҷрои мувозии дархостҳо дар PL/pgSQL бо истифода аз фармони "RETURN QUERY" ва иҷрои мувозии дархостҳо дар " ба нақшаи дархостҳо оптимизатсияҳо илова карда шуданд. НАЗАРАИ МОДДӢРО ТАРВА ДИҲЕД». Барои беҳтар кардани кори муттаҳидшавии даврии лона (ҳамроҳшавӣ), дастгирии кэшкунии иловагӣ амалӣ карда шуд.
  • Ҳоло омори пешрафта метавонад барои оптимизатсияи ифодаҳо истифода шавад ва мураттабсозии афзоянда акнун метавонад барои оптимизатсияи функсияҳои тиреза истифода шавад.
  • Процедураҳои захирашуда, ки ба шумо имкон медиҳанд, ки транзаксияҳоро дар блокҳои код идора кунед, ҳоло муайян кардани маълумоти бозгаштро бо истифода аз параметрҳои "OUT" дастгирӣ мекунанд.
  • Функсияи date_bin ба арзишҳои даврии вақт мувофиқи фосилаи муайян илова карда шуд. SELECT санаи_бин('15 дақиқа', МАРКАЗИ ВАҚТ '2020-02-11 15:44:17', МАРКАЗИ ВАҚТ '2001-01-01'); 2020-02-11 15:30:00
  • Ифодаҳои SEARCH ва CYCLE, ки дар стандарти SQL муайян шудаанд, илова карда шуданд, то фармоиш ва муайян кардани давраҳоро дар Ифодаҳои Ҷадвали умумии рекурсивӣ (CTE) осонтар кунад. БО РЕКУРСИВИ ҷустуҷӯ_дарахти (id, пайванд, додаҳо) AS ( SELECT t.id, t.link, t.data АЗ дарахт t UNION ҲАМАИ ИНТИХОБ t.id, t.link, t.data АЗ дарахти t, search_tree st КУҶО t. id = st.link ) Ҷустуҷӯи АВВАЛ аз рӯи id SET ordercol SELECT * АЗ search_tree ТАРТИБ БО ordercol;
  • Дар утилитаи psql, худкор пуркунии фармонҳо бо ҷадвалҳо такмил дода шуд, қобилияти намоиш додани аргументҳои функсия ба фармони "\df" илова карда шуд ва омори намоишшуда ба фармони "\dX" васеъ карда шуд.
  • Ба корбарон имтиёзҳои танҳо барои хондан ё танҳо навиштан таъин кардан мумкин аст. Имтиёзҳоро метавон дар ҷадвалҳо, намудҳо ва схемаҳои инфиродӣ бо истифода аз нақшҳои пешакӣ муайяншудаи pg_read_all_data ва pg_write_all_data муқаррар кард. ДОДАНИ pg_read_all_data БА корбар1;
  • Насбҳои нав бо нобаёнӣ ба аутентификатсияи парол бо истифода аз SCRAM-SHA-256 ба ҷои md5 (параметри "password_encryption" ҳангоми тавлиди postgresql.conf ҳоло ба "scram-sha-256" таъин шудааст).

Манбаъ: opennet.ru

Илова Эзоҳ