إصدار PostgreSQL 12

بعد عام من التطوير نشرت فرع مستقر جديد لنظام إدارة قواعد البيانات PostgreSQL 12. تحديثات للفرع الجديد سيخرج لمدة خمس سنوات حتى نوفمبر 2024.

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

  • تمت إضافة الدعم لـ "الأعمدة المولدة"، والتي يتم حساب قيمتها بناءً على تعبير يغطي قيم الأعمدة الأخرى في نفس الجدول (على غرار طرق العرض، ولكن للأعمدة الفردية). يمكن أن تكون الأعمدة التي تم إنشاؤها من نوعين - مخزنة وافتراضية. في الحالة الأولى، يتم حساب القيمة في وقت إضافة البيانات أو تغييرها، وفي الحالة الثانية، يتم حساب القيمة على كل قراءة بناءً على الحالة الحالية للأعمدة الأخرى. حاليًا، يدعم PostgreSQL فقط الأعمدة المُخزنة التي تم إنشاؤها؛
  • تمت إضافة القدرة على الاستعلام عن البيانات من مستندات JSON باستخدام تعبيرات المسار، تذكرنا كسباث والمحددة في معيار SQL/JSON. تُستخدم آليات الفهرسة الحالية لتحسين كفاءة معالجة مثل هذه التعبيرات للمستندات المخزنة بتنسيق JSONB؛
  • يتم تمكينه افتراضيًا باستخدام برنامج التحويل البرمجي JIT (في الوقت المناسب) استنادًا إلى تطورات LLVM لتسريع تنفيذ بعض التعبيرات أثناء معالجة استعلام SQL. على سبيل المثال، يتم استخدام JIT لتسريع تنفيذ التعبيرات داخل كتل WHERE وقوائم الأهداف والتعبيرات المجمعة وبعض العمليات الداخلية؛
  • تم تحسين أداء الفهرسة بشكل ملحوظ. تم تحسين فهارس B-tree للعمل في البيئات التي تتغير فيها الفهارس بشكل متكرر - تُظهر اختبارات TPC-C زيادة إجمالية في الأداء وانخفاضًا متوسطًا في استهلاك مساحة القرص بنسبة 40%. تم تقليل الحمل الزائد عند إنشاء سجل الكتابة المسبقة (WAL) لأنواع فهرس GiST وGIN وSP-GiST. بالنسبة إلى GiST، تمت إضافة القدرة على إنشاء فهارس مجمعة (عبر تعبير INCLUDE) تتضمن أعمدة إضافية. في عملية إنشاء الإحصائيات يوفر الدعم لإحصائيات القيمة الأكثر شيوعًا (MCV) لإنشاء خطط استعلام أكثر مثالية عند استخدام الأعمدة الموزعة بشكل غير متساو؛
  • تم تحسين تنفيذ التقسيم للاستعلامات التي تمتد عبر الجداول التي تحتوي على آلاف الأقسام، ولكنها تقتصر على تحديد مجموعة فرعية محدودة من البيانات. تم تحسين أداء إضافة البيانات إلى الجداول المقسمة باستخدام عمليتي INSERT وCOPY، ومن الممكن أيضًا إضافة أقسام جديدة من خلال "ALTER TABLE ATTACH PARTITION" دون حظر تنفيذ الاستعلام؛
  • تمت إضافة دعم للتوسيع المضمن التلقائي لتعبيرات الجدول المعمم (تعبير الجدول المشترك، CTE) التي تسمح باستخدام مجموعات النتائج المسماة المؤقتة المحددة باستخدام عبارة YOU. يمكن أن يؤدي النشر المضمن إلى تحسين أداء معظم الاستعلامات، ولكنه يُستخدم حاليًا فقط في CTEs غير العودية؛
  • دعم إضافي غير حتمية خصائص لغة "الترتيب"، والتي تسمح لك بتعيين قواعد الفرز وطرق المطابقة مع مراعاة معنى الأحرف (على سبيل المثال، عند فرز القيم الرقمية، وجود علامة ناقص ونقطة أمام رقم وأنواع مختلفة تؤخذ في الاعتبار الإملاء، وعند المقارنة لا تؤخذ في الاعتبار حالة الأحرف ووجود علامة التشكيل) ؛
  • تمت إضافة دعم لمصادقة العميل متعددة العوامل، حيث يمكنك في pg_hba.conf دمج مصادقة شهادة SSL (clientcert=verify-full) مع طريقة مصادقة إضافية مثل scram-sha-256 للمصادقة؛
  • تمت إضافة دعم لتشفير قناة الاتصال عند المصادقة عبرها GSSAPIسواء من جانب العميل أو من جانب الخادم؛
  • تمت إضافة دعم لتحديد خوادم LDAP بناءً على سجلات "DNS SRV" إذا تم إنشاء PostgreSQL باستخدام OpenLDAP؛
  • العملية المضافة "رينديكس بشكل متزامن» لإعادة بناء الفهارس دون حظر عمليات الكتابة إلى الفهرس؛
  • وأضاف الفريق pg_checksums، والذي يسمح لك بتمكين أو تعطيل فحص المجاميع الاختبارية لصفحات البيانات لقاعدة بيانات موجودة (في السابق، كانت هذه العملية مدعومة فقط أثناء تهيئة قاعدة البيانات)؛
  • تم توفير مخرجات مؤشر التقدم للعمليات CREATE INDEX وREINDEX وCLUSTER وVACUUM FULL وpg_checksums؛
  • أمر مضاف "إنشاء طريقة الوصول» لتوصيل المعالجات بأساليب تخزين الجدول الجديدة المُحسّنة لمختلف المهام المحددة. طريقة الوصول إلى الجدول المضمنة الوحيدة حاليًا هي "الكومة"؛
  • تم دمج ملف التكوين Recovery.conf مع postgresql.conf. كمؤشرات الانتقال إلى حالة التعافي بعد الفشل الآن ينبغي استخدم ملفات Recovery.signal وstandby.signal.

المصدر: opennet.ru

إضافة تعليق