PostgreSQL 14 DBMS релиз

Бир жылдык өнүгүүдөн кийин PostgreSQL 14 DBMSтин жаңы туруктуу бутагы жарык көрдү.Жаңы филиал үчүн жаңыртуулар беш жылдын ичинде 2026-жылдын ноябрына чейин чыгарылат.

Негизги инновациялар:

  • Массив сымал туюнтмаларды колдонуу менен JSON берилиштерине жетүүгө колдоо кошулду: SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; SELECT * FROM test WHERE details['attributes']['size'] = '"medium"';

    Ушундай эле синтаксис hstore түрү тарабынан берилген ачкыч/маани маалыматтары үчүн ишке ашырылат. Бул синтаксис алгач универсалдуу алкактын жардамы менен ишке ашырылган, келечекте ал башка типтер үчүн колдонулушу мүмкүн. hstore түрүнө мисал: INSERT INTO mytable VALUES ('a=>b, c=>d'); SELECT h['a'] mytable; UPDATE mytable SET h['c'] = 'new';

  • Диапазондорду аныктоо үчүн типтердин үй-бүлөсү жаңы “көп диапазондук” типтер менен кеңейтилди, алар сизге маанилердин бири-бирине дал келбеген диапазондорунун иреттелген тизмелерин көрсөтүүгө мүмкүндүк берет. Ар бир учурдагы диапазон түрүнө кошумча, өзүнүн көп диапазон түрү сунушталат, мисалы, “int4range” түрү “int4multirange” га, ал эми “daterange” түрү “datemultirange” га туура келет. Жаңы типтерди колдонуу диапазондордун татаал ырааттуулугун башкарган сурамдардын дизайнын жөнөкөйлөтөт. SELECT '{[3,7), [8,9)}'::int4multirange; SELECT nummultirange(numrange(1.0, 14.0), numrange(20.0, 25.0));
  • Көп сандаган байланыштарды иштеткен жогорку жүктөмдүү системалардын иштешин жакшыртуу үчүн оптималдаштыруулар жасалган. Кээ бир сыноолордо өндүрүмдүүлүктүн эки эсе жогорулашы байкалат.
  • B-дарактын индекстеринин эффективдүүлүгү жакшыртылды жана таблицалар тез-тез жаңыланып турганда индекстин өсүшүнө байланыштуу көйгөй чечилди.
  • Сурамдарды жөнөтүүнүн кардар тарабына (libpq деңгээлинде ишке ашырылган) колдоосу кошулду, бул көп сандагы майда жазуу операцияларын (INSERT/UPDATE/DELETE) аткаруу менен байланышкан маалыматтар базасынын сценарийлерин кыйла тездетүүгө мүмкүндүк берет. мурунку өтүнүчтүн жыйынтыгын күтпөстөн кийинки өтүнүч. Режим ошондой эле пакеттерди жеткирүүнүн узакка созулган кечигүүлөрү менен байланыштарды тездетүүгө жардам берет.
  • Бир нече PostgreSQL серверлерин камтыган бөлүштүрүлгөн конфигурациялар үчүн өркүндөтүлгөн мүмкүнчүлүктөр. Логикалык репликацияны ишке ашырууда, азыр аткаруу процессинде турган транзакцияларды агымдык режимде жөнөтүү мүмкүн болуп калды, бул ири транзакцияларды репликациялоонун натыйжалуулугун бир топ жакшыртат. Мындан тышкары, логикалык репликация учурунда алынган маалыматтардын логикалык декоддоосу оптималдаштырылган.
  • Тышкы таблицаларды туташтыруу механизми Foreign Data Wrapper (postgres_fdw) параллелдүү сурамдарды иштетүү үчүн колдоону кошту, ал учурда башка PostgreSQL серверлерине туташуу учурунда гана колдонулат. postgres_fdw ошондой эле пакеттик режимде тышкы таблицаларга маалыматтарды кошуу үчүн колдоону жана "ИМПОРТ ТЫШКЫ СХЕМАНЫ" көрсөтүү менен бөлүнгөн таблицаларды импорттоо мүмкүнчүлүгүн кошот.
  • ВАКУМ операциясын (таштандыларды чогултуу жана диск сактоочу жайды таңгактоо) ишке ашырууга оптималдаштыруулар жасалган. Транзакциянын идентификаторун жабуу шарттары түзүлсө, маанилүү эмес тазалоо операцияларын өткөрүп жиберүүчү шашылыш тазалоо режими кошулду. B-Tree форматында индекстерди иштетүүдө кыскартылган кошумча чыгымдар. Маалыматтар базасынын иштеши жөнүндө статистикалык маалыматтарды чогултуучу «АНАЛИЗ» операциясынын аткарылышы бир кыйла тездетилди.
  • TOAST тутумунда колдонулган кысуу ыкмасын конфигурациялоо мүмкүнчүлүгү кошулду, ал тексттин блоктору же геометриялык маалымат сыяктуу чоң маалыматтарды сактоого жооптуу. pglz кысуу ыкмасынан тышкары, TOAST азыр LZ4 алгоритмин колдоно алат.
  • ДББнын иштешине мониторинг жүргүзүү үчүн куралдар кеңейтилген. COPY буйруктарынын жүрүшүнө көз салуу үчүн көрүүлөр кошулду (pg_stat_progress_copy), репликация уячалары жөнүндө статистика (pg_stat_replication_slots) жана WAL транзакциялар журналына (pg_stat_wal) байланыштуу аракеттер. pg_stat_activity жана EXPLAIN VERBOSE сыяктуу ар кандай подсистемаларга ар бир суроо үчүн уникалдуу идентификатор дайындоо аркылуу сурамдарга көз салууга мүмкүндүк берген compute_query_id функциясы кошулду.
  • Сурамдарды параллелдүү иштетүүнү жакшыртуу жана ырааттуу сканерлөө операцияларын, PL/pgSQLде "RETURN QUERY" буйругун колдонуу менен сурамдарды параллелдүү аткарууну жакшыртуу жана "'да сурамдарды параллелдүү аткаруу үчүн оптималдаштыруу сурамдарды пландоочуга кошулду. МАТЕРИАЛДАШТЫРЫЛГАН КӨРҮНҮШТҮ ЖАҢЫРТУУ». Циклдик уяча бириктирүүлөрдүн (кошулуунун) иштешин жакшыртуу үчүн кошумча кэштөө үчүн колдоо ишке ашырылды.
  • Өркүндөтүлгөн статистика эми туюнтмаларды оптималдаштыруу үчүн колдонулушу мүмкүн, ал эми кошумча иреттөө терезе функцияларын оптималдаштыруу үчүн колдонулушу мүмкүн.
  • Код блокторундагы транзакцияларды башкарууга мүмкүндүк берүүчү сакталган процедуралар эми "OUT" параметрлерин колдонуу менен кайтаруу берилиштерин аныктоону колдойт.
  • Белгиленген интервалга ылайык убакыт белгисинин маанилерин тегеректөө үчүн date_bin функциясы кошулду. SELECT date_bin('15 мүнөт', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01'); 2020-02-11 15:30:00
  • Рекурсивдүү Common Table Expressions (CTE) ичинде циклдерди иреттөөнү жана аныктоону жеңилдетүү үчүн SQL стандартында аныкталган SEARCH жана CYCLE туюнтмалары кошулду. МЕНЕН РЕКУРСИВ издөө_дарагы(id, шилтеме, берилиштер) AS ( t.id, t.link, t.data FROM t UNION ALL SELECT t.id, t.link, t.data FROM дарак t, search_tree st WHERE t. id = st.link ) БИРИНЧИ ИД ОРНОТУ БОЮНЧА ИЗДӨӨ ТЕРЕҢДҮҮСҮ ordercol SELECT * search_tree FROM ORDER BY ordercol;
  • Psql утилитасында өтмөктөр менен буйруктарды автотолуктоо жакшыртылды, функциянын аргументтерин көрсөтүү мүмкүнчүлүгү “\df” буйругуна кошулду, ал эми көрсөтүлгөн статистика “\dX” буйругуна кеңейтилди.
  • Колдонуучуларга окууга гана же жазууга гана артыкчылыктарды дайындоого болот. Артыкчылыктарды pg_read_all_data жана pg_write_all_data алдын ала аныкталган ролдору аркылуу жеке таблицаларга, көрүнүштөргө жана схемаларга коюуга болот. 1 колдонуучуга pg_read_all_data БЕРҮҮ;
  • Жаңы орнотуулар демейки md256тин ордуна SCRAM-SHA-5 аркылуу сырсөз аутентификациясына ылайыкташтырылган (postgresql.conf түзүүдө "password_encryption" параметри азыр "scram-sha-256" болуп коюлган).

Source: opennet.ru

Комментарий кошуу