PostgreSQL 12 versiyasi

PostgreSQL jamoasi ochiq manbali relyatsion ma'lumotlar bazasini boshqarish tizimining so'nggi versiyasi bo'lgan PostgreSQL 12 ning chiqarilishini e'lon qildi.
PostgreSQL 12 so'rovlar unumdorligini sezilarli darajada yaxshiladi - ayniqsa katta hajmdagi ma'lumotlar bilan ishlashda va umuman disk maydonidan foydalanishni optimallashtirdi.

Yangi funksiyalarga quyidagilar kiradi:

  • JSON Path so'rovlar tilini amalga oshirish (SQL/JSON standartining eng muhim qismi);
  • umumiy jadval ifodalarining bajarilishini optimallashtirish (WITH);
  • yaratilgan ustunlar uchun qo'llab-quvvatlash

Hamjamiyat, shuningdek, PostgreSQL-ning kengayishi va ishonchliligi ustida ishlashni davom ettirmoqda, xalqarolashtirish, autentifikatsiya imkoniyatlarini qo'llab-quvvatlamoqda va tizimni boshqarishning oson usullarini taqdim etmoqda.

Ushbu relizda ulanadigan xotira dvigatellari uchun interfeysni amalga oshirish kiradi, bu endi ishlab chiquvchilarga o'zlarining ma'lumotlarni saqlash usullarini yaratishga imkon beradi.

Ishlash yaxshilanishi

PostgreSQL 12 indekslash va qismlarga ajratish tizimlari uchun sezilarli ishlash va texnik yaxshilanishlarni o'z ichiga oladi.

PostgreSQL-dagi standart indekslash turi bo'lgan B-daraxt indekslari indekslarni tez-tez o'zgartirishni o'z ichiga olgan ish yuklari uchun 12-versiyada optimallashtirilgan. PostgreSQL 12 uchun TPC-C benchmarkidan foydalanish boʻsh joydan foydalanishning oʻrtacha 40% ga kamayganini va soʻrovlar samaradorligining umumiy oʻsishini koʻrsatdi.

Bo'lingan jadvallarga nisbatan so'rovlar, ayniqsa, ma'lumotlar massivlarining faqat cheklangan qismlari bilan ishlashni talab qiluvchi minglab bo'limlardan iborat jadvallar uchun sezilarli yaxshilanishlarni oldi. INSERT va COPY yordamida bo‘lingan jadvallarga ma’lumotlarni qo‘shish unumdorligi, shuningdek, so‘rovlarni bloklamasdan yangi bo‘lim biriktirish imkoniyati yaxshilandi.

PostgreSQL 12 indekslashda umumiy ishlashga ta'sir qiluvchi qo'shimcha yaxshilanishlarni amalga oshirdi, jumladan:

  • GiST, GIN va SP-GiST indekslari turlari uchun WAL ni yaratishda kamaytirilgan qo'shimcha xarajatlar;
  • GiST indekslarida qoplovchi indekslarni (INCLUDE bandi) yaratish qobiliyati;
  • masofa operatori (<->) va SP-GiST indekslari yordamida "eng yaqin qo'shni" so'rovlarini (k-NN qidiruvi) bajarish qobiliyati;
  • CREATE STATISTICS yordamida eng keng tarqalgan qiymat (MCV) statistikasini to'plashni qo'llab-quvvatlash, bu qiymatlari notekis taqsimlangan ustunlardan foydalanganda yaxshiroq so'rov rejalarini olishga yordam beradi.

PostgreSQL 11 da taqdim etilgan LLVM yordamida JIT kompilyatsiyasi endi sukut bo'yicha yoqilgan. JIT kompilyatsiyasi WHERE bandlari, maqsadli ro'yxatlar, agregatlar va ba'zi ichki operatsiyalardagi ifodalar bilan ishlashda unumdorlikni oshiradi. Agar siz PostgreSQL-ni LLVM bilan kompilyatsiya qilgan bo'lsangiz yoki LLVM yoqilgan holda yaratilgan PostgreSQL paketidan foydalansangiz, u mavjud.

SQL tili imkoniyatlari va standart muvofiqligi yaxshilandi

PostgreSQL 12 SQL/JSON standartida belgilangan JSON yo'l ifodalaridan foydalangan holda JSON hujjatlarini so'rash imkoniyatini taqdim etdi. Bunday so'rovlar ma'lumotlarni samarali olish uchun JSONB formatida saqlangan hujjatlar uchun mavjud indekslash mexanizmlaridan foydalanishi mumkin.

WITH so'rovlari sifatida ham tanilgan umumiy jadval iboralari endi PostgreSQL 12 da almashtirish yordamida avtomatik ravishda bajarilishi mumkin, bu esa o'z navbatida ko'plab mavjud so'rovlarning ishlashini yaxshilashga yordam beradi. Yangi versiyada WITH soʻrovining almashtirish qismi faqat rekursiv boʻlmasa, nojoʻya taʼsirlarga ega boʻlmasa va soʻrovning keyingi qismida faqat bir marta havola qilinsagina bajarilishi mumkin.

PostgreSQL 12 "hosil qilingan ustunlar" ni qo'llab-quvvatlaydi. SQL standartida tavsiflangan ushbu ustun turi bir xil jadvaldagi boshqa ustunlar tarkibiga asoslangan qiymatni hisoblab chiqadi. Ushbu versiyada PostgreSQL hisoblangan qiymat diskda saqlanadigan "saqlangan yaratilgan ustunlar" ni qo'llab-quvvatlaydi.

Xalqarolashtirish

PostgreSQL 12 foydalanuvchilarga, masalan, katta-kichik harflarni sezmaydigan yoki urg'uni sezmaydigan taqqoslashga imkon beradigan "aniqlanmaydigan harmanlamalar" ni aniqlashga imkon berish orqali ICU harmanlamalarini qo'llab-quvvatlashni kengaytiradi.

Autentifikatsiya

PostgreSQL qo'shimcha xavfsizlik va funksionallikni ta'minlaydigan bir nechta yaxshilanishlar bilan kuchli autentifikatsiya usullarini qo'llab-quvvatlashini kengaytiradi. Ushbu nashr GSSAPI interfeyslari orqali autentifikatsiya qilish uchun mijoz tomoni va server tomoni shifrlashni, shuningdek, PostgreSQL OpenLDAP bilan kompilyatsiya qilinganida PostgreSQL uchun LDAP serverlarini topish qobiliyatini taqdim etadi.

Bundan tashqari, PostgreSQL 12 endi ko'p faktorli autentifikatsiya opsiyasini qo'llab-quvvatlaydi. PostgreSQL serveri endi mijozdan clientcert=verify-full yordamida tegishli foydalanuvchi nomi bilan yaroqli SSL sertifikatini taqdim etishini talab qilishi va buni alohida autentifikatsiya usuli talabi (masalan, scram-sha-256) bilan birlashtirishi mumkin.

Ma'muriyat

PostgreSQL 12 REINDEX CONCURRENTLY buyrug'i yordamida bloklanmagan indekslarni qayta qurish imkoniyatini taqdim etdi. Bu foydalanuvchilarga indekslarni uzoq vaqt davomida qayta tiklash paytida DBMS ishlamay qolishidan qochish imkonini beradi.

Bundan tashqari, PostgreSQL 12 da pg_checksums buyrug'i yordamida o'chirish klasterida sahifa nazorat summalarini yoqishingiz yoki o'chirishingiz mumkin. Ilgari, diskda saqlangan ma'lumotlarning yaxlitligini tekshirishga yordam beruvchi xususiyat bo'lgan sahifa nazorat summalari faqat initdb yordamida PostgreSQL klasteri ishga tushirilganda yoqilishi mumkin edi.

Manba: linux.org.ru

a Izoh qo'shish