إصدار PostgreSQL 12

أعلن فريق PostgreSQL عن إطلاق PostgreSQL 12، وهو الإصدار الأحدث من نظام إدارة قواعد البيانات العلائقية مفتوح المصدر.
قام PostgreSQL 12 بتحسين أداء الاستعلام بشكل ملحوظ - خاصة عند العمل مع كميات كبيرة من البيانات، كما قام أيضًا بتحسين استخدام مساحة القرص بشكل عام.

تشمل الميزات الجديدة ما يلي:

  • تنفيذ لغة استعلام مسار JSON (الجزء الأكثر أهمية في معيار SQL/JSON)؛
  • تحسين تنفيذ تعبيرات الجدول المشتركة (WITH)؛
  • دعم الأعمدة التي تم إنشاؤها

ويواصل المجتمع أيضًا العمل على قابلية التوسعة والموثوقية لـ PostgreSQL، وتطوير الدعم للتدويل، وقدرات المصادقة، وتوفير طرق أسهل لإدارة النظام.

يتضمن هذا الإصدار تنفيذ واجهة لمحركات التخزين القابلة للتوصيل، والتي تتيح الآن للمطورين إنشاء طرق تخزين البيانات الخاصة بهم.

تحسينات في الأداء

يتضمن PostgreSQL 12 تحسينات كبيرة في الأداء والصيانة لأنظمة الفهرسة والتقسيم.

تم تحسين فهارس B-tree، وهي نوع الفهرسة القياسي في PostgreSQL، في الإصدار 12 لأحمال العمل التي تتضمن تعديلات فهرس متكررة. أظهر استخدام معيار TPC-C لـ PostgreSQL 12 انخفاضًا متوسطًا بنسبة 40% في استخدام المساحة وزيادة إجمالية في أداء الاستعلام.

لقد تلقت الاستعلامات المتعلقة بالجداول المقسمة تحسينات ملحوظة، خاصة بالنسبة للجداول التي تتكون من آلاف الأقسام التي تتطلب العمل مع أجزاء محدودة فقط من صفائف البيانات. تم تحسين أداء إضافة البيانات إلى الجداول المقسمة باستخدام INSERT وCOPY، بالإضافة إلى القدرة على إرفاق قسم جديد دون حظر الاستعلامات.

أجرى PostgreSQL 12 تحسينات إضافية على الفهرسة مما يؤثر على الأداء العام، بما في ذلك:

  • تقليل الحمل عند إنشاء WAL لأنواع فهارس GiST وGIN وSP-GiST؛
  • القدرة على إنشاء ما يسمى بفهرسات التغطية (عبارة INCLUDE) على فهارس GiST؛
  • القدرة على إجراء استعلامات "أقرب جار" (بحث k-NN) باستخدام عامل المسافة (<->) واستخدام فهارس SP-GiST؛
  • دعم جمع إحصائيات القيمة الأكثر شيوعًا (MCV) باستخدام CREATE STATISTICS، مما يساعد في الحصول على خطط استعلام أفضل عند استخدام الأعمدة التي يتم توزيع قيمها بشكل غير متساو.

يتم الآن تمكين تجميع JIT باستخدام LLVM، الذي تم تقديمه في PostgreSQL 11، افتراضيًا. يعمل تجميع JIT على تحسين الأداء عند العمل مع التعبيرات في عبارات WHERE، والقوائم المستهدفة، والتجميعات، وبعض العمليات الداخلية. وهي متاحة إذا قمت بتجميع PostgreSQL باستخدام LLVM أو كنت تستخدم حزمة PostgreSQL التي تم إنشاؤها مع تمكين LLVM.

تحسينات على قدرات لغة SQL والتوافق القياسي

قدم PostgreSQL 12 القدرة على الاستعلام عن مستندات JSON باستخدام تعبيرات مسار JSON المحددة في معيار SQL/JSON. يمكن لمثل هذه الاستعلامات الاستفادة من آليات الفهرسة الحالية للمستندات المخزنة بتنسيق JSONB لاسترداد البيانات بكفاءة.

يمكن الآن تنفيذ تعبيرات الجدول الشائعة، والمعروفة أيضًا باسم الاستعلامات، تلقائيًا باستخدام الاستبدال في PostgreSQL 12، والذي بدوره يمكن أن يساعد في تحسين أداء العديد من الاستعلامات الموجودة. في الإصدار الجديد، لا يمكن تنفيذ الجزء البديل من استعلام "With" إلا إذا لم يكن متكررًا، وليس له أي آثار جانبية، ويتم الرجوع إليه مرة واحدة فقط في جزء لاحق من الاستعلام.

يقدم PostgreSQL 12 دعمًا لـ "الأعمدة التي تم إنشاؤها". هذا النوع من الأعمدة، الموضح في معيار SQL، يحسب قيمة بناءً على محتويات الأعمدة الأخرى في نفس الجدول. في هذا الإصدار، يدعم PostgreSQL "الأعمدة المُنشأة المخزنة"، حيث يتم تخزين القيمة المحسوبة على القرص.

تدويل

يعمل PostgreSQL 12 على توسيع الدعم لعمليات ترتيب ICU من خلال السماح للمستخدمين بتعريف "عمليات الترتيب غير الحتمية" والتي يمكن، على سبيل المثال، السماح بمقارنات غير حساسة لحالة الأحرف أو غير حساسة لللكنة.

المصادقة

يقوم PostgreSQL بتوسيع دعمه لأساليب المصادقة القوية من خلال العديد من التحسينات التي توفر أمانًا ووظائف إضافية. يقدم هذا الإصدار التشفير من جانب العميل والخادم للمصادقة عبر واجهات GSSAPI، بالإضافة إلى قدرة PostgreSQL على اكتشاف خوادم LDAP عندما يتم تجميع PostgreSQL مع OpenLDAP.

بالإضافة إلى ذلك، يدعم PostgreSQL 12 الآن خيار المصادقة متعددة العوامل. يمكن لخادم PostgreSQL الآن أن يطلب من العميل تقديم شهادة SSL صالحة مع اسم المستخدم المقابل باستخدام Clientcert=verify-full، ودمج ذلك مع متطلبات طريقة مصادقة منفصلة (على سبيل المثال، scram-sha-256).

إدارة

قدم PostgreSQL 12 القدرة على إجراء عمليات إعادة بناء الفهرس غير المحظورة باستخدام أمر REINDEX CONCURRENTLY. يتيح ذلك للمستخدمين تجنب توقف نظام إدارة قواعد البيانات (DBMS) أثناء عمليات إعادة بناء الفهرس المطولة.

بالإضافة إلى ذلك، في PostgreSQL 12، يمكنك تمكين أو تعطيل المجموع الاختباري للصفحة في مجموعة إيقاف التشغيل باستخدام الأمر pg_checksums. في السابق، كان من الممكن تفعيل المجاميع الاختبارية للصفحة، وهي ميزة تساعد في التحقق من سلامة البيانات المخزنة على القرص، فقط عند تهيئة مجموعة PostgreSQL باستخدام initdb.

المصدر: linux.org.ru

إضافة تعليق