PostgreSQL 17 verilənlər bazası sisteminin buraxılışı

Bir illik inkişafdan sonra PostgreSQL 17 verilənlər bazası idarəetmə sisteminin yeni stabil versiyası nəşr olundu. Yeni versiya üçün yeniləmələr 2029-cu ilin noyabr ayına qədər beş il ərzində dərc olunacaq. PostgreSQL 12.x, dəstəklənən ən köhnə versiya, 14 noyabr tarixində dəstəyi dayandıracaq.

Əsas yeniliklər:

  • VACUUM əməliyyatı (müxtəlif materialların toplanması, zibillərin təmizlənməsi və disklərin yığılması) həyata keçirilərkən yeni bir məlumat strukturu istifadəyə verildi ki, bu da 20 dəfə daha az yaddaş tələb edir. Yeni struktura keçid VACUUM əməliyyatlarının icrasını sürətləndirir və ortaq resurs istehlakını azaldır.
  • Giriş/çıxış performansının optimallaşdırılması davam etdirilir. Gecikmiş yazı jurnalının (WAL) emalı üçün kodun yaxşılaşdırılması nəticəsində bir çox eyni vaxtda icra olunan sorğuların sistemlərində yazma əməliyyatlarının tutumunu iki qat artırmaq mümkün oldu. Yeni axın giriş/çıxış interfeysi təklif olunur ki, bu da məlumatların cədvəllərdə ardıcıl olaraq skan edilməsini sürətləndirir və ANALYZE əməliyyatından sonra sorğu planlayıcısının statistikasını yeniləmə sürətini artırır.
  • B-tree strukturlarına əsaslanan indekslərin istifadəsi zamanı 'IN' ifadələri ilə olan sorğuların performansı artırılıb. BRIN (Block Range Index) indekslərinin paralel yaradılması imkanı yaradılıb. Sorğu planlayıcısında 'NOT NULL' yoxlamaları optimallaşdırılıb və SQL əmr 'WITH' ilə müəyyən edilən ümumiləşdirilmiş cədvəl ifadələrinin (Common Table Expression, CTE) emalı sürətləndirilib. AVX-512 göstərişləri istifadə edilərək bəzi hesablamaların sürətini artırmaq üçün vektor prosessor göstərişləri (SIMD) təmin edilib.
  • JSON formatında işləmək üçün SQL/JSON standartında müəyyən edilmiş yeni imkanların dəstəyi təmin edilib. JSON-dan PostgreSQL-də adi cədvəllərə məlumatları çevirmək üçün JSON-TABLE funksiyası əlavə edilib, həmçinin PostgreSQL üçün yerli tip məlumatlarına çevirmək üçün yeni jsonpath operatorları təqdim olunub. JSON formatında məlumatların yaradılması (JSON, JSON_SCALAR və JSON_SERIALIZE) və sorğulanması (JSON_EXISTS, JSON_QUERY və JSON_VALUE) üçün yeni funksiyalar təklif edilib.
  • INSERT, UPDATE və DELETE əməliyyatlarını bir ifadədə birləşdirən şərti SQL ifadələri yaratmağa imkan verən SQL MERGE əmri genişləndirilib. İstifadə edilən RETURNING ifadəsinin dəstəyi əlavə edilib, bu, əlavə edilən, yenilənən və ya silinən sətirlərdən dəyərləri hesablamağa və geri qaytarmağa imkan tanıyır. Görsətmə yenilənməsi dəstəklənmişdir.
  • Verilərin yüklənməsi və ixracı üçün paket rejimində imkanlar genişləndirilib. COPY əmri vasitəsilə böyük sətirlərin ixrac sürəti iki dəfə artırılıb, hədəf və mənbə kodlamaları eynilik təşkil etdikdə köçürmə optimallaşdırılıb, ON_ERROR seçimi əlavə edilib ki, bu da məlumatların daxil edilməsindəki səhvlərdən sonra importu davam etdirməyə imkan tanıyır.
  • Sekretləşdirilmiş cədvəllər üçün unikal tanımlayıcılar olan sütunların istifadəsi və "Constraint exclusion" sorğu optimallaşdırma texnikasının dəstəyi əlavə edilmişdir.
  • Xarici cədvəllərə bağlanma mexanizmi, Foreign Data Wrapper (postgres_fdw) vasitəsi ilə xarici server sorğuların "EXISTS" və "IN" keçirilməsi mümkün olmuşdur.
  • Platformadankənar yerli xüsusiyyətlər "Collation" işlətməsi üçün daxili mühərrik tətbiq edilmişdir. Bu mühərrik, sıralama qaydalarının və simvolların mənasını nəzərə alaraq müqayisə metodlarının müəyyən edilməsində istifadə edilir (məsələn, ədədi dəyərlərin sıralanmasında mənfi işarənin və nöqtənin mövcudluğu nəzərə alınır, eyni zamanda mətnin yazıldığı formada müxtəlif variantlar da mövcuddur, müqayisə zamanı isə simvolların böyüklüyü və ton işarəsi göz ardı edilir). Yeni mühərrik, PostgreSQL-in hansı platformada işlədiyindən asılı olmayaraq, sorğu nəticələrinin sıralanmasında eyni davranış təmin edir.
  • Məlumat bazasında qeydləri əlavə, silmə və ya yeniləmə yolu ilə baş verən dəyişiklikləri başqa bir serverə köçürmək üçün məntiqi təkrarlanma mexanizmi, İdarəetmə Sistemi yeniləməsini asanlaşdırmışdır. Əvvəllər yeni mühüm versiyaya keçərkən məntiqi təkrarlanma slotlarının silinməsi və məlumatların yenidən sinkronizasiyası tələb olunurdusa, indi slotların silinməsi olmadan da iş görmək mümkündür. Dayanıqlı konfiqurasiyalar üçün məntiqi təkrarlanma üçün ehtiyat serverə (failover) keçid idarəsi mümkün olmuşdur. Fiziki replikası yeni məntiqi replikaya çevirmək üçün yeni pg_createsubscriber utiliti əlavə edilmişdir.
  • Birbaşa TLS əlaqələrinin təmin edilməsi üçün "sslnegotiation" yeni seçimi əlavə edilmişdir, bu da TLS genişləndirməsi ALPN istifadə edir.
  • Məlumat bazasının idarə olunması ilə əlaqəli əməliyyatları yerinə yetirmək hüququna malik olan əvvəlcədən müəyyən edilmiş pg_maintain rolu tətbiq edilmişdir.
  • Məlumat bazası backups yaratmaq üçün istifadə olunan pg_basebackup utilitində inkremental backups dəstəyi əlavə edilmişdir. İnkremantal kopiyalardan tam backup-u yenidən qurmaq üçün yeni pg_combinebacku utiliti təklif edilmişdir. pg_dump utilitinə daxil edilən obyektlərin seçilməsi üçün "--filter" seçimi əlavə edilmişdir.
  • SQL komandası vasitəsi ilə sorğuların analizində, lokal blokların oxunmasına və yazılmasına sərf olunan vaxtın çıxarılması mümkün olmuşdur. "EXPLAIN" komandasına həmçinin istifadə olunan yaddaşın ölçüsü və şəbəkə ilə ötürmək üçün data çevirmək üçün sərf olunan vaxtı təyin etməyə imkan verən "MEMORY" və "SERIALIZE" adlı iki yeni seçim əlavə edilmişdir.
  • İndeksli VACUUM əməliyyatının icra prosesinin göstəricisi təmin edilmişdir.
  • Aktiv seansların gözləmə vəziyyətində qalma səbəblərini daha ətraflı araşdırmaq üçün pg_wait_events sistem görünüşü əlavə edilmişdir, bu da pg_stat_activity görünüşü ilə birgə istifadə olunur.

Mənbə: opennet.ru

DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster