ملخص: الميزات الجديدة في PostgreSQL 18
تمثل PostgreSQL 18، التي صدرت نسختها التجريبية الأولى في 8 مايو 2025، إحدى أهم الإصدارات في السنوات الأخيرة. تركز هذه النسخة على تحسينات جوهرية في ثلاث مجالات رئيسية: الأداء، وتجربة المطور، والعمليات التشغيلية والأمن.1. تحسينات الأداء:
الإدخال/الإخراج غير المتزامن (Asynchronous I/O - AIO):
تحول معماري جذري من النموذج المتزامن التقليدي.
يوفر تحسينات في الأداء تصل إلى 2-3 أضعاف لأحمال العمل كثيفة القراءة.
يقلل من زمن استجابة الإدخال/الإخراج، خاصة في البيئات السحابية.
يدعم io_uring على Linux وتطبيقات العامل عبر الأنظمة الأساسية.
خيارات تهيئة جديدة مثل io_method و io_workers.
منظر النظام pg_aios لمراقبة عمليات AIO في الوقت الفعلي.
تحسينات استعلامات B-tree:
إضافة ميزة "تخطي الفحص" (Skip Scan) لفهارس B-tree، مما يسرع الاستعلامات التي لا تحدد جميع الأعمدة الرئيسية للفهرس.
تحسينات إضافية للاستعلامات:
معالجة أكثر ذكاءً لـ OR/IN بتحويلها تلقائيًا إلى عمليات ANY(array).
تحسين أداء ربط الهاش (Hash Joins).
بناء متوازٍ لفهارس GIN (لـ JSON والبحث بالنص الكامل).
دعم محسن للجداول المقسمة (partitioned tables) مع تحسينات في التقليم (pruning) وعمليات الربط.
2. تجربة المطور:
الأعمدة المولدة الافتراضية (Virtual Generated Columns):
أصبحت هي الخيار الافتراضي، حيث يتم حساب قيمها عند الطلب بدلاً من تخزينها فعليًا، مما يقلل متطلبات التخزين ويسرع عمليات INSERT/UPDATE.
يمكن الآن تكرار الأعمدة المولدة المخزنة منطقيًا (logically replicated).
دعم UUIDv7 الأصلي:
يوفر توازنًا بين التفرد العالمي والترتيب الملائم لقواعد البيانات (زمنيًا).
يحسن أداء فهارس B-tree ويقلل انقسام الصفحات (page splits).
uuidv4() أصبح مرادفًا لـ gen_rand_uuid.
تحسينات عبارة RETURNING:
يمكن الآن الوصول إلى القيم القديمة والجديدة في نفس عبارة RETURNING لعمليات DML (مثل UPDATE).
القيود الزمنية (Temporal Constraints):
دعم قيود الوقت باستخدام WITHOUT OVERLAPS لمنع تداخل الفترات الزمنية في الجداول.
3. التحسينات التشغيلية والأمن:
الأمن:
دعم مصادقة OAuth 2.0: يتيح التكامل مع موفري الهوية الحديثين.
إهمال مصادقة كلمة المرور MD5: تفضيل SCRAM-SHA-256 الأكثر أمانًا (سيتم إزالته في الإصدار الرئيسي التالي).
معلمات تشفير TLS 1.3:ssl_tls13_ciphers للتحكم الدقيق في مجموعات التشفير.
الترقيات:
حفظ إحصائيات المخطط (planner statistics): يلغي الحاجة لعمليات ANALYZE المطولة بعد الترقية.
تحسينات pg_upgrade: دعم أعلام --jobs للمعالجة المتوازية و --swap لعمليات الدليل الأسرع.
المراقبة (Monitoring):
تحسينات EXPLAIN: يتضمن الآن استخدام الـ buffer افتراضيًا ويوفر مقاييس تفصيلية مثل CPU و WAL وإحصائيات القراءة/الكتابة لكل عقدة في خطة التنفيذ.
إحصائيات إضافية: توقيت VACUUM و ANALYZE في pg_stat_all_tables، إحصائيات I/O و WAL لكل backend، وتحسين تقارير تعارضات النسخ المتماثل المنطقي (Logical Replication).
سلامة البيانات (Data Integrity):
التحقق من البيانات (Data Checksums) افتراضيًا: يتم تمكينها افتراضيًا عند إنشاء مجموعات بيانات جديدة للكشف المبكر عن تلف البيانات.
إدارة المخطط (Schema Management):
إضافة قيود NOT NULL بدون فحص فوري للجدول: باستخدام NOT VALID ثم VALIDATE CONSTRAINT لاحقًا لتقليل وقت التوقف.
دعم NOT ENFORCED و NO INHERIT للقيود.
بروتوكول السلك (Wire Protocol):
إدخال بروتوكول سلك الإصدار 3.2، وهو أول تحديث منذ PostgreSQL 7.4.
التوفر والاختبار:
PostgreSQL 18 Beta 1 متاحة للاختبار، ويتم تشجيع المطورين على اختبار تطبيقاتهم للتحقق من التوافق وتقييم الميزات الجديدة. من المتوقع أن يصدر الإصدار النهائي في سبتمبر/أكتوبر 2025. ستدعم Neon PostgreSQL 18 فور صدورها الرسمي. يمكن تجربة PostgreSQL 18 محليًا باستخدام Docker.
المصادر: