زيادة سرعة تقسيم التجزئة في PostgreSQL بمقدار 20 ضعفًا: تجاوز عمليات البحث في الكتالوج

2025-08-27
زيادة سرعة تقسيم التجزئة في PostgreSQL بمقدار 20 ضعفًا: تجاوز عمليات البحث في الكتالوج

يُحدث تقسيم التجزئة في PostgreSQL زيادة في عمليات البحث في الكتالوج في التطبيقات عالية الإنتاجية. تُقدّم هذه المقالة تقنية تحسين تتجاوز عمليات البحث في الكتالوج في PostgreSQL من خلال حساب مؤشرات التقسيم مسبقًا في طبقة التطبيق. باستخدام جوهرة Ruby `pg_hash_func` أو من خلال الاتصال المباشر بوظائف التجزئة في PostgreSQL، يمكن زيادة سرعة الاستعلامات بأكثر من 20 ضعفًا، مما يُقلل بشكل كبير من وقت الانتظار. هذا النهج مناسب للسيناريوهات الحرجة من حيث الأداء، ويُتيح خيارات أكثر لتوازن البساطة والأداء.

اقرأ المزيد
التطوير تقسيم التجزئة

مساعدو البرمجة بالذكاء الاصطناعي: نعمة أم نقمة؟

2025-06-17
مساعدو البرمجة بالذكاء الاصطناعي: نعمة أم نقمة؟

أصبحت مساعدات البرمجة بالذكاء الاصطناعي أكثر تطوراً، حيث تُنتج رموزاً نظيفة وفعالة. ومع ذلك، قد يؤدي هذا إلى "إغلاق سابق لأوانه"، حيث ينجذب المبرمجون إلى حلول تبدو مثالية ويتجاهلون المشاكل الأعمق. تستخدم المقالة تشبيهاً طبياً، حيث تُقارن الذكاء الاصطناعي بالأطباء ذوي الخبرة الذين قد يفوتهم حالة نادرة بسبب خبرتهم. ينصح الكاتب المبرمجين بتقييم اقتراحات الذكاء الاصطناعي بشكل نقدي، واستكشاف حلول متعددة بنشاط، وتجنب الوقوع في فخ الحلول السريعة لتحسين جودة الرمز ومنع تراكم الديون التقنية.

اقرأ المزيد
التطوير ديون تقنية

سلوك غير متوقع في PostgreSQL: CTE و DELETE و LIMIT

2025-05-04
سلوك غير متوقع في PostgreSQL: CTE و DELETE و LIMIT

ظهر سلوك غير متوقع في PostgreSQL عند استخدام تعبير الجدول المشترك (CTE) مع DELETE ... RETURNING و LIMIT لمعالجة مجموعة من العناصر. كانت النية هي حذف صف واحد فقط، لكن تم حذف صفوف متعددة. كشف `EXPLAIN ANALYZE` عن تحسين انضمام شبه مُضمَّن مُتداخِل، مما تسبب في تنفيذ شرط LIMIT 1 عدة مرات. كان الحل هو إعادة هيكلة الاستعلام، وتجنب CTE واستخدام استعلام فرعي مباشرة في شرط WHERE لـ DELETE. هذا يبرز أن CTEs لا تمنع دائمًا تحسينات خطة الاستعلام، وأن فحصًا دقيقًا للخطة أمر بالغ الأهمية للعمليات الحرجة.

اقرأ المزيد

الالتزام المتزامن في PostgreSQL: مقايضة بين الأداء والمتانة

2025-03-19
الالتزام المتزامن في PostgreSQL: مقايضة بين الأداء والمتانة

تتناول هذه المقالة الآثار المترتبة على الأداء لإعداد `synchronous_commit` في PostgreSQL. يؤدي إيقاف تشغيله إلى زيادة كبيرة في إنتاجية المعاملات، مما يقلل من مدخلات/مخرجات وحدة المعالجة المركزية، ولكنه يُدخِل نافذة خطر صغيرة لفقدان البيانات. يُظهر الكاتب زيادة بنسبة 30٪ في TPS في الأنظمة التي تقتصر على مدخلات/مخرجات. تدعو المقالة إلى اتباع نهج دقيق، واقتراح ضبط `synchronous_commit` لكل جلسة أو معاملة أو عملية، مع توفير مثال في Ruby on Rails. كما يلاحظ الكاتب أنه في Aurora PostgreSQL، فإن تعيين `synchronous_commit` على `off` يُنتج أكبر مكاسب في الأداء.

اقرأ المزيد

توسيع نطاق PostgreSQL: مشكلات غريبة وحلول للشركات الناشئة سريعة النمو

2025-02-09
توسيع نطاق PostgreSQL: مشكلات غريبة وحلول للشركات الناشئة سريعة النمو

يتناول هذا المنشور التحديات الشائعة في توسيع نطاق PostgreSQL التي تواجهها الشركات الناشئة سريعة النمو. وهو يغطي مشكلات مثل احتجاز القفل، وانتفاخ الفهرس، وعدم كفاءة تخزين TOAST، وتعقيدات التوسيع الرأسي مقابل التوسيع الأفقي، والجدول الإضافي فقط مقابل الجداول كثيفة التحديث، وتعدد المستأجرين. وبالنسبة لكل مشكلة، يتم تقديم حلول عملية، تتراوح من تعديلات معلمات قاعدة البيانات وأدوات التزامن إلى إعادة التفكير في أنماط الوصول إلى البيانات واستخدام ميزات مثل الأقفال الاستشارية. كما يستكشف المؤلف مواضيع متقدمة مثل هجرات المخطط تحت الحمل، وترقيات بدون وقت توقف، واستراتيجيات فعالة لاستعلامات COUNT. هذه مورد قيّم للمهندسين الذين يسعون إلى تحسين أداء PostgreSQL في بيئات متطلبة.

اقرأ المزيد

محاكاة قواعد البيانات: مشاكل أكثر مما تستحق؟

2024-12-30
محاكاة قواعد البيانات: مشاكل أكثر مما تستحق؟

على الرغم من جاذبيتها من حيث السرعة والبساطة، إلا أن الكاتب يجادل بأن استخدام محاكاة قواعد البيانات للاختبار ينتج عنه في النهاية مشاكل أكثر مما يحل. يُبرز مثال إنشاء المستخدم الاختلافات بين المحاكاة والاختبار ضد قاعدة بيانات حقيقية. يكشف اختبار قاعدة البيانات الحقيقية عن مشكلات محتملة في وقت مبكر، مثل انتهاكات القيود الفريدة، ومعالجة القيم الافتراضية، واختناقات الأداء، مما يوفر وقت التصحيح ويقلل من مخاطر الإنتاج. مع تطور التطبيقات وتغيير المخططات، تتعامل اختبارات قاعدة البيانات الحقيقية بشكل أفضل مع عمليات التحقق الجديدة، وتعديلات نوع البيانات، وتغييرات دقة الطابع الزمني، مما يضمن أن يكون الرمز مُحاذيًا لقاعدة البيانات الفعلية. يقترح الكاتب إعطاء الأولوية لاختبارات قاعدة البيانات الحقيقية لطبقات الوصول إلى البيانات، بينما يتم استخدامها على مستوى طبقة الخدمة لعرض تفاعلات منطق العمل مع البيانات. ومع ذلك، يمكن لوحدات التحكم محاكاة مكالمات الخدمة بكفاءة. يُعد التوازن بين اختبارات قاعدة البيانات الحقيقية والمحاكاة أمرًا بالغ الأهمية لبناء تطبيقات قوية.

اقرأ المزيد