PostgreSQL 14 buraxılışı

Bir illik inkişafdan sonra PostgreSQL 14 DBMS-nin yeni stabil filialı nəşr olundu.Yeni filial üçün yeniləmələr 2026-ci ilin noyabrına qədər beş il ərzində buraxılacaq.

Əsas yeniliklər:

  • Massiv kimi ifadələrdən istifadə edərək JSON məlumatlarına daxil olmaq üçün əlavə dəstək: SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; SELECT * FROM test WHERE details['atributs']['size'] = '"orta"';

    Oxşar sintaksis hstore növü tərəfindən təmin edilən açar/dəyər məlumatları üçün həyata keçirilir. Bu sintaksis əvvəlcə universal çərçivədən istifadə edərək həyata keçirildi, gələcəkdə başqa növlər üçün də istifadə oluna bilər. hstore növü üçün nümunə: INSERT INTO mytable VALUES ('a=>b, c=>d'); mytableDAN h['a'] SEÇİN; YENİLƏNİB mytable SET h['c'] = 'yeni';

  • Diapazonları müəyyən etmək üçün növlər ailəsi üst-üstə düşməyən dəyər diapazonlarının sifarişli siyahılarını təyin etməyə imkan verən yeni “çox diapazonlu” növlərlə genişləndirilmişdir. Hər bir mövcud diapazon növünə əlavə olaraq, özünün çox diapazonlu növü təklif olunur, məsələn, “int4range” növü “int4multirange”ə, “daterange” növü isə “datemultirange”ə uyğundur. Yeni növlərin istifadəsi diapazonların mürəkkəb ardıcıllığını manipulyasiya edən sorğuların dizaynını asanlaşdırır. SEÇİN '{[3,7), [8,9)}'::int4multirange; SELECT nummultirange(numrange(1.0, 14.0), numrange(20.0, 25.0));
  • Çox sayda əlaqəni emal edən yüksək yüklü sistemlərin işini yaxşılaşdırmaq üçün optimallaşdırmalar edilmişdir. Bəzi testlərdə performansın ikiqat artması müşahidə olunur.
  • B-ağacı indekslərinin səmərəliliyi yaxşılaşdırıldı və cədvəllər tez-tez yeniləndikdə indeks artımı ilə bağlı problem həll edildi.
  • Müştəri tərəfi (libpq səviyyəsində həyata keçirilir) sorğuların ötürülməsi rejimi üçün əlavə dəstək, çoxlu sayda kiçik yazma əməliyyatlarının (INSERT/UPDATE/DELETE) yerinə yetirilməsi ilə bağlı verilənlər bazası ssenarilərini əhəmiyyətli dərəcədə sürətləndirməyə imkan verir. əvvəlkinin nəticəsini gözləmədən növbəti sorğu. Rejim, həmçinin uzun paket çatdırılması gecikmələri ilə bağlantılar üzərində işi sürətləndirməyə kömək edir.
  • Çox PostgreSQL serverlərini əhatə edən paylanmış konfiqurasiyalar üçün təkmilləşdirilmiş imkanlar. Məntiqi replikasiyanın həyata keçirilməsində indi icra olunan tranzaksiyaları axın rejimində göndərmək mümkün olur ki, bu da böyük əməliyyatların təkrarlanmasının işini əhəmiyyətli dərəcədə yaxşılaşdıra bilər. Bundan əlavə, məntiqi təkrarlama zamanı alınan məlumatların məntiqi dekodlanması optimallaşdırılıb.
  • Xarici cədvəlləri birləşdirən mexanizm Xarici Data Wrapper (postgres_fdw) paralel sorğuların işlənməsi üçün əlavə dəstək əlavə etdi, bu, hazırda yalnız digər PostgreSQL serverlərinə qoşulduqda tətbiq olunur. postgres_fdw həmçinin toplu rejimdə xarici cədvəllərə məlumat əlavə etmək üçün dəstək və “XARİCİ SHEMA İDAL EDİN” direktivini təyin etməklə bölünmüş cədvəlləri idxal etmək imkanı əlavə edir.
  • VAKUUM əməliyyatının həyata keçirilməsi üçün optimallaşdırmalar aparılıb (zibilin toplanması və disk saxlama qabının qablaşdırılması). Tranzaksiya ID sarma şərtləri yaradılarsa, qeyri-vacib təmizləmə əməliyyatlarını atlayan təcili təmizləmə rejimi əlavə edildi. B-Tree formatında indeksləri emal edərkən azaldılmış əlavə xərclər. Verilənlər bazasının fəaliyyəti ilə bağlı statistik məlumatların toplandığı “ANALİZ” əməliyyatının icrası xeyli sürətlənmişdir.
  • Mətn blokları və ya həndəsi məlumat kimi böyük məlumatların saxlanmasına cavabdeh olan TOAST sistemində istifadə olunan sıxılma metodunu konfiqurasiya etmək imkanı əlavə edildi. pglz sıxılma metoduna əlavə olaraq, TOAST indi LZ4 alqoritmindən istifadə edə bilər.
  • DBMS-nin işinə nəzarət alətləri genişləndirilmişdir. COPY əmrlərinin gedişatını (pg_stat_progress_copy), təkrarlama yuvaları haqqında statistik məlumatları (pg_stat_replication_slots) və WAL əməliyyat jurnalı ilə əlaqəli fəaliyyəti (pg_stat_wal) izləmək üçün əlavə baxışlar. pg_stat_activity və EXPLAIN VERBOSE kimi müxtəlif alt sistemlərə hər sorğu üçün unikal identifikator təyin etməklə sorğuları izləməyə imkan verən compute_query_id funksiyası əlavə edilmişdir.
  • Sorğuların paralel işlənməsini təkmilləşdirmək və ardıcıl qeyd skan əməliyyatlarının eyni vaxtda icrasını, “RETURN QUERY” əmrindən istifadə etməklə PL/pgSQL-də sorğuların paralel icrasını və “” sorğularının paralel icrasını yaxşılaşdırmaq üçün sorğu planlayıcısına optimallaşdırmalar əlavə edilib. MADDİYYƏTLİ GÖRÜNÜŞÜ TƏZİL EDİN”. Dövrlü iç-içə birləşmələrin (qoşulma) işini yaxşılaşdırmaq üçün əlavə keşləmə dəstəyi həyata keçirilmişdir.
  • Qabaqcıl statistika indi ifadələri optimallaşdırmaq üçün istifadə edilə bilər və artımlı çeşidləmə indi pəncərə funksiyalarını optimallaşdırmaq üçün istifadə edilə bilər.
  • Kod bloklarında əməliyyatları idarə etməyə imkan verən saxlanılan prosedurlar indi "OUT" parametrlərindən istifadə edərək qaytarma məlumatlarının müəyyənləşdirilməsini dəstəkləyir.
  • Müəyyən edilmiş intervala uyğun olaraq vaxt möhürü dəyərlərinə yuvarlaqlaşdırmaq üçün date_bin funksiyası əlavə edildi. SELECT date_bin('15 dəqiqə', ZAMAN ŞƏRGƏSİ '2020-02-11 15:44:17', ZAMAN ŞAMGASI '2001-01-01'); 2020-02-11 15:30:00
  • Rekursiv Ümumi Cədvəl İfadələrində (CTE) dövrləri sifariş etməyi və müəyyən etməyi asanlaşdırmaq üçün SQL standartında müəyyən edilmiş SEARCH və CYCLE ifadələri əlavə edildi. RECURSIVE search_tree(id, link, data) AS ( SEÇİN t.id, t.link, t.data FROM tree t UNION BÜTÜN SEÇİN t.id, t.link, t.data FROM tree t, search_tree st HERE t. id = st.link ) İD DƏRİNLİYİ BİRİNCƏ AXTARIŞ DƏRİNLİYİ SET ordercol SEÇİN * search_tree FROM SİFARİŞ ordercol;
  • Psql yardım proqramında əmrlərin nişanlarla avtomatik tamamlanması təkmilləşdirilmiş, funksiya arqumentlərini göstərmək imkanı “\df” əmrinə əlavə edilmiş və göstərilən statistika “\dX” əmrinə qədər genişləndirilmişdir.
  • İstifadəçilərə yalnız oxumaq və ya yalnız yazmaq üçün imtiyazlar təyin etmək mümkündür. İmtiyazlar pg_read_all_data və pg_write_all_data əvvəlcədən təyin edilmiş rollardan istifadə edərək fərdi cədvəllərdə, görünüşlərdə və sxemlərdə təyin edilə bilər. İstifadəçi1 ÜÇÜN pg_read_all_data VERİN;
  • Yeni quraşdırmalar defolt olaraq md256 əvəzinə SCRAM-SHA-5 istifadə edərək parol identifikasiyasına uyğundur (postgresql.conf yaradarkən "password_encryption" parametri indi "scram-sha-256" olaraq təyin olunub).

Mənbə: opennet.ru

Добавить комментарий