PostgreSQL المتقدّم — الفهارس والخطط والتحسين
شخّص وأصلح الاستعلامات البطيئة التي تكلّف شركات MENA آلاف الدولارات في فواتير RDS غير ضرورية. خطط EXPLAIN حقيقية، فهارس جزئية حقيقية، مكاسب أداء حقيقية.
عن الدورة
حين تكون قاعدة Postgres لديك بطيئة، الإجابة نادرًا 'أضف رامًا أكثر'. عادةً تكون فهرس مفقود أو خطة استعلام سيئة أو VACUUM مُساء فهمها. نشخّص حالات حقيقية (نُظِّفت من إنتاج ثلاث ستارت-أبس في MENA)، نقيس بـ auto_explain، نُصلح بفهارس صحيحة (B-tree و GIN وجزئية وتعبيرية)، ونشرح لماذا نجح كل إصلاح. تخرج وأنت قادر على قراءة أي خطة EXPLAIN واقتراح تحسين يصمد في مراجعة الكود.
ما ستتعلّمه
- 1
كيف تُنفّذ Postgres استعلامًا
المحلّل والمخطّط والمنفّذ. شكل خطة EXPLAIN.
- 2
الفهارس — B-tree و GIN وجزئية وتعبيرية
أي فهرس لأي استعلام. التكلفة التي لا يذكرها أحد.
- 3
EXPLAIN ANALYZE بعمق
التكلفة المتوقّعة مقابل الفعلية. الـ buffers. الأنماط الخمسة التي تعني المشاكل دائمًا.
- 4
الإحصاءات و ANALYZE وعقل المخطّط
كيف تخمّن Postgres عدد الصفوف. متى تخمّن خطأ. فرض خطة أفضل.
- 5
VACUUM و autovacuum والـ bloat
لماذا جدولك 50 جيجا ويحمل 5 جيجا فعليّا. ضبط autovacuum.
- 6
تجميع الاتصالات و pgbouncer
لماذا max_connections=200 ليس الإجابة. التجميع بنمط transaction.
- 7
حالات حقيقية — شخّص، أصلح، قِس
5 استعلامات بطيئة من إنتاج حقيقي مُنقّى. كل واحد تمرين 30 دقيقة.
لمن هذه الدورة
مهندسو باك-إند كبار، DBAs، SREs، وقادة فِرَق يمتلكون أداء قواعد البيانات.
المتطلبات
ملمّ بـ SQL — JOINs و GROUP BY والاستعلامات الفرعية. عملت مع Postgres في الإنتاج.
المهارات اللي هتبنيها
- PostgreSQL
- EXPLAIN
- الفهارس
- تحسين الاستعلامات
- VACUUM
- pgbouncer
- DBA
- الأداء
نبحث عن مُحاضر
وظيفة مفتوحة · تقدّم للتدريسالمهارات المطلوبة
- PostgreSQL
- EXPLAIN
- الفهارس
- تحسين الاستعلامات
- VACUUM
- pgbouncer
- DBA
- الأداء
الخبرة
٥ سنوات فأكثر كممارس متقدّم
اللغات
الإنجليزية أو العربية (الاثنتان أفضل)
الالتزام الزمني
٨ جلسات × ساعتان على مدى ٨ أسابيع
العائد المادي
٨٠٪ من إيراد المقاعد (تحوت يأخذ ٢٠٪)
إذا كانت سيرتك الذاتية تطابق المتطلبات، تقدّم للتدريس. نستخدم الذكاء الاصطناعي لترتيب المتقدّمين حسب التطابق، ثم يراجع المسؤول ويعتمد المُحاضر(ين) المناسب.
سجّل لتتقدّم →