PostgreSQL 15 DBMS versiyasi

Bir yillik rivojlanishdan so‘ng PostgreSQL 15 DBMSning yangi barqaror filiali nashr etildi.Yangi filial uchun yangilanishlar besh yil davomida 2027-yil noyabrigacha chiqariladi.

Asosiy innovatsiyalar:

  • "INSERT ... ON CONFLICT" iborasiga o'xshash "MERGE" SQL buyrug'ini qo'llab-quvvatlash qo'shildi. MERGE INSERT, UPDATE va DELETE amallarini bitta ifodada birlashtirgan shartli SQL operatorlarini yaratish imkonini beradi. Masalan, MERGE-dan foydalanib, etishmayotgan yozuvlarni kiritish va mavjudlarini yangilash orqali ikkita jadvalni birlashtirishingiz mumkin. mijoz_hisobiga birlashtiring. t.customer_id = ca.customer_id SOXIRGI_Tranzaksiyalar FOYDALANISH TO MUVOFIQ KESA SO‘NG SO‘NG SO‘RING balans = balans + tranzaksiya_qiymati MOS BO‘LMASA, KEYIN (mijoz_identifikatori, balans) QIYMATLARNI QO‘SHING (t.customer_id, balans);
  • Xotiradagi va diskdagi ma'lumotlarni saralash algoritmlari sezilarli darajada yaxshilandi. Ma'lumotlar turiga qarab, testlar saralash tezligining 25% dan 400% gacha o'sishini ko'rsatadi.
  • row_number(), rank(), dense_rank() va count() yordamida oyna funksiyalari tezlashtirildi.
  • "SELECT DISTINCT" ifodasi bilan so'rovlarni parallel ravishda bajarish imkoniyati amalga oshirildi.
  • Tashqi jadvallarni ulash mexanizmi (postgres_fdw) tashqi ma'lumotlar to'plami tashqi serverlarga so'rovlarni asinxron tarzda qayta ishlash uchun ilgari qo'shilgan qobiliyatiga qo'shimcha ravishda asinxron topshiriqlarni qo'llab-quvvatlaydi.
  • WAL tranzaksiya jurnallarini siqish uchun LZ4 va Zstandard (zstd) algoritmlaridan foydalanish imkoniyati qo'shildi, bu esa ba'zi ish yuklarida bir vaqtning o'zida unumdorlikni oshirishi va disk maydonini tejash imkonini beradi. Muvaffaqiyatsizlikdan so'ng tiklanish vaqtini qisqartirish uchun WAL jurnalida paydo bo'ladigan sahifalarni faol ravishda qidirishni qo'llab-quvvatlash qo'shildi.
  • pg_basebackup yordam dasturi gzip, LZ4 yoki zstd usullaridan foydalangan holda zaxira fayllarni server tomonidan siqish uchun qo'shimcha yordam berdi. Arxivlash uchun o'z modullaringizdan foydalanish mumkin, bu sizga qobiq buyruqlarini ishga tushirmasdan bajarishga imkon beradi.
  • Oddiy iboralar yordamida satrlarni qayta ishlash uchun bir qator yangi funksiyalar qo'shildi: regexp_count(), regexp_instr(), regexp_like() va regexp_substr().
  • Rang_agg() funksiyasiga ko'p diapazonli turlarni ("ko'p diapazon") jamlash imkoniyati qo'shildi.
  • Qo'shilgan security_invoker rejimi, bu sizga ko'rinish yaratuvchisi emas, balki qo'ng'iroq qiluvchi foydalanuvchi sifatida ishlaydigan ko'rinishlarni yaratish imkonini beradi.
  • Mantiqiy replikatsiya uchun satrlarni filtrlash va ustunlar ro'yxatini belgilash qo'llab-quvvatlandi, bu jo'natuvchiga replikatsiya uchun jadvaldan ma'lumotlarning kichik to'plamini tanlash imkonini beradi. Bundan tashqari, yangi versiya konfliktlarni boshqarishni soddalashtiradi, masalan, endi ziddiyatli tranzaktsiyalarni o'tkazib yuborish va xato aniqlanganda obunani avtomatik ravishda o'chirish mumkin. Mantiqiy replikatsiya ikki fazali majburiyatlardan (2PC) foydalanishga imkon beradi.
  • Yangi jurnal formati qo'shildi - JSON formati yordamida ma'lumotlarni tuzilgan shaklda saqlaydigan jsonlog.
  • Administrator foydalanuvchilarga ba'zi PostgreSQL server konfiguratsiya parametrlarini o'zgartirish uchun individual huquqlarni berish imkoniyatiga ega.
  • Psql yordam dasturi "\dconfig" buyrug'i yordamida sozlamalar (pg_settings) haqidagi ma'lumotlarni qidirish uchun qo'shimcha yordam berdi.
  • Serverning ishlashi to'g'risidagi statistik ma'lumotlarni to'plash uchun umumiy xotiradan foydalanish ta'minlanadi, bu statistikani yig'ish va diskdagi holatni vaqti-vaqti bilan tiklashning alohida jarayonidan xalos bo'lishga imkon beradi.
  • “ICU Collation” standart ICU tillaridan foydalanish imkoniyati taqdim etilgan; ilgari sukut boʻyicha faqat libc tillaridan foydalanish mumkin edi.
  • O'rnatilgan pg_walinspect kengaytmasi taklif qilindi, bu sizga SQL so'rovlari yordamida WAL jurnallari bilan fayllar tarkibini tekshirish imkonini beradi.
  • Ommaviy sxema uchun barcha foydalanuvchilar, ma'lumotlar bazasi egasidan tashqari, CREATE buyrug'ini bajarish vakolatiga ega bo'lishdi.
  • PL/Python-da Python 2-ni qo'llab-quvvatlash olib tashlandi. Eskirgan eksklyuziv zaxira rejimi olib tashlandi.

Qo'shimcha: 19:00 dan 20:00 gacha (MSK) Pavel Luzanov (Postgres Professional) bilan yangi versiyadagi o'zgarishlarni muhokama qiladigan vebinar bo'lib o'tadi. Efirga qo‘shila olmaganlar uchun PGConf.Russia saytida Pavelning iyun oyidagi “PostgreSQL 15: MERGE va boshqalar” hisobotini yozib olish ochiq.

Manba: opennet.ru

a Izoh qo'shish