إصدار PostgreSQL 15

بعد عام من التطوير، تم نشر فرع مستقر جديد من PostgreSQL 15 DBMS. سيتم إصدار تحديثات الفرع الجديد على مدار خمس سنوات حتى نوفمبر 2027.

الابتكارات الرئيسية:

  • تمت إضافة دعم لأمر SQL "MERGE"، الذي يشبه التعبير "INSERT ... ON CONFLICT". يتيح لك MERGE إنشاء عبارات SQL شرطية تجمع بين عمليات INSERT وUPDATE وDELETE في تعبير واحد. على سبيل المثال، باستخدام MERGE، يمكنك دمج جدولين عن طريق إدراج السجلات المفقودة وتحديث السجلات الموجودة. دمج في customer_account كاليفورنيا باستخدام المعاملات الأخيرة t على t.customer_id = ca.customer_id عند المطابقة ثم تحديث الرصيد المحدد = الرصيد + قيمة المعاملة عندما لا تكون متطابقة ثم أدخل (معرف_العميل، الرصيد) القيم (t.customer_id، t.transaction_value)؛
  • تم تحسين خوارزميات فرز البيانات في الذاكرة وعلى القرص بشكل ملحوظ. اعتمادًا على نوع البيانات، أظهرت الاختبارات زيادة في سرعة الفرز من 25% إلى 400%.
  • تم تسريع وظائف النافذة التي تستخدمrow_number() وrank() وdensity_rank() وcount().
  • تم تنفيذ إمكانية التنفيذ المتوازي للاستعلامات مع التعبير "SELECT DISTINCT".
  • آلية ربط الجداول الخارجية، غلاف البيانات الخارجية (postgres_fdw) يطبق دعم الالتزامات غير المتزامنة بالإضافة إلى القدرة المضافة مسبقًا لمعالجة الطلبات بشكل غير متزامن إلى خوادم خارجية.
  • تمت إضافة القدرة على استخدام خوارزميات LZ4 وZstandard (zstd) لضغط سجلات معاملات WAL، والتي يمكنها، في ظل بعض أحمال العمل، تحسين الأداء وتوفير مساحة القرص في نفس الوقت. لتقليل وقت الاسترداد بعد الفشل، تمت إضافة دعم الاسترداد الاستباقي للصفحات التي تظهر في سجل WAL.
  • أضافت الأداة المساعدة pg_basebackup دعمًا لضغط ملفات النسخ الاحتياطي من جانب الخادم باستخدام طرق gzip أو LZ4 أو zstd. من الممكن استخدام الوحدات النمطية الخاصة بك للأرشفة، مما يسمح لك بالاستغناء عن الحاجة إلى تشغيل أوامر shell.
  • تمت إضافة سلسلة من الوظائف الجديدة لمعالجة السلاسل باستخدام التعبيرات العادية: regexp_count() وregexp_instr() وregexp_like() وregexp_substr().
  • تمت إضافة القدرة على تجميع الأنواع متعددة النطاقات ("multirange") إلى الدالة range_agg().
  • تمت إضافة وضع Security_invocer، والذي يسمح لك بإنشاء عروض يتم تشغيلها كمستخدم متصل بدلاً من منشئ العرض.
  • بالنسبة للنسخ المتماثل المنطقي، تم تنفيذ دعم تصفية الصفوف وتحديد قوائم الأعمدة، مما يسمح للمرسل بتحديد مجموعة فرعية من البيانات من الجدول للنسخ المتماثل. بالإضافة إلى ذلك، يعمل الإصدار الجديد على تبسيط إدارة الصراع، على سبيل المثال، أصبح من الممكن الآن تخطي المعاملات المتضاربة وتعطيل الاشتراك تلقائيًا عند اكتشاف خطأ. يسمح النسخ المتماثل المنطقي باستخدام الالتزامات على مرحلتين (2PC).
  • تمت إضافة تنسيق سجل جديد - jsonlog، الذي يحفظ المعلومات في نموذج منظم باستخدام تنسيق JSON.
  • يتمتع المسؤول بالقدرة على تفويض الحقوق الفردية للمستخدمين لتغيير معلمات معينة لتكوين خادم PostgreSQL.
  • أضافت الأداة المساعدة psql دعمًا للبحث عن معلومات حول الإعدادات (pg_settings) باستخدام الأمر "\dconfig".
  • يتم ضمان استخدام الذاكرة المشتركة لتجميع الإحصائيات حول تشغيل الخادم، مما يجعل من الممكن التخلص من عملية منفصلة لجمع الإحصائيات وإعادة ضبط الحالة على القرص بشكل دوري.
  • تم توفير القدرة على استخدام لغات ICU الافتراضية "ICU Collation"؛ في السابق، كان يمكن استخدام لغات libc فقط باعتبارها الإعدادات المحلية الافتراضية.
  • تم اقتراح ملحق مدمج pg_walinspect، والذي يسمح لك بفحص محتويات الملفات باستخدام سجلات WAL باستخدام استعلامات SQL.
  • بالنسبة للمخطط العام، تم إبطال صلاحية تنفيذ الأمر CREATE لجميع المستخدمين، باستثناء مالك قاعدة البيانات.
  • تمت إزالة دعم Python 2 في PL/Python، كما تمت إزالة وضع النسخ الاحتياطي الحصري القديم.

إضافة: من الساعة 19:00 إلى الساعة 20:00 (بتوقيت جرينتش) ستكون هناك ندوة عبر الإنترنت تناقش التغييرات في الإصدار الجديد مع بافيل لوزانوف (Postgres Professional). بالنسبة لأولئك الذين لا يستطيعون الانضمام إلى البث، فإن تسجيل تقرير بافيل لشهر يونيو "PostgreSQL 15: MERGE and more" في PGConf.روسيا مفتوح.

المصدر: opennet.ru

إضافة تعليق