محتويات الدورة

MongoDB / المتقدم: التشغيل الموزع والقابل للتعافي / الدرس 13

خطط explain وأداء حمل العمل

افحص العمل والانتقائية والتنافس دون اعتبار اسم الفهرس أو تجربة واحدة دليلاً، واقرأ explain في سياق الإصدار.

وقت القراءة التقريبي: 3 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • تفسير معلومات المحسن وإحصاءات التنفيذ منفصلة.
  • اختيار تغيير الفهرس أو الاستعلام أو السعة من الدليل.

قس سؤال الخدمة الفعلي

سجل الشكل والمعاملات والإسقاط والفرز والوثائق وهدف الزمن. قد ينحرف توزيع المستأجرين فلا تمثل الصغير الكبير. قارن تكراراً وتزامناً معزولاً مع الحجم والمخبأ. قد ينتظر قليل الفحص التخزين أو الموارد؛ لا تسرع بإزالة النطاق أو التاريخ أو شرط الصحة.

اسأل عن مسار الوصول المدروس

تعرض queryPlanner خطة لا ملخص تنفيذ مقاساً كاملاً، وقد يجرب التخطيط مرشحين فلا يعد بعمل صفري. يحتاج المثال عينة زمنية لعميل. افحص الخطة والحدود والمرشحات والفرز معاً. تختلف البنية بالمحرك والإصدار ومنها classic وslot-based؛ لا تثبت مسار JSON واحداً للمراقبة.

javascript mongosh توضيحية؛ النتائج المتوقعة مستنتجة وليست قياسات.
db.getSiblingDB('quay_lab').shipments.find(
  { customerId: 7 }, { _id: 1, createdAt: 1 }
).sort({ createdAt: -1, _id: -1 }).limit(20).explain('queryPlanner');

لا نختلق خطة أو أوقات وتعتمد الاستراتيجية على العينة.

اقرأ الفحص مع النتائج المعادة

تنفذ executionStats الخطة وتعرض nReturned وtotalKeysExamined وtotalDocsExamined. قد يفحص ملخص صحيح الكثير ويشير بحث نقطة مماثل لمشكلة. للتغطية شروط تتأثر بالمصفوفة والإسقاط. تعطي allPlansExecution معلومات تجارب لا قياس كل خطة كاملة؛ ميز التقدير والتجربة والتنفيذ.

حلل التنفيذ بعينة محدودة معتمدة فقط

ينفذ التحليل القراءة فعلاً لإحصاءاتها، وهو غير قابل للتشغيل هنا ولا تجربة حمل إنتاج. تحقق من غياب $out و$merge بعينة معزولة. قارن أعداد المراحل قبل الجمع والفرز؛ قد يخفي الخرج الصغير مسحاً. لا تستخدم explain المخبأ مثل الطلب العادي ولا تثبت زمن التطبيق المستقر.

javascript mongosh توضيحية؛ النتائج المتوقعة مستنتجة وليست قياسات.
db.getSiblingDB('quay_lab').shipments.explain('executionStats').aggregate([
  { $match: { state: 'pending', customerId: 7 } },
  { $group: { _id: '$destinationId', count: { $sum: 1 } } },
  { $sort: { count: -1, _id: 1 } }
]);

المتوقع تحليل تعتمد أعداده وأوقاته على البيئة ولم تقاس للمقرر.

غيّر عنق الزجاجة المثبت

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

الأخطاء الشائعة وإصلاحها

يُعتبر IXSCAN إثبات كفاءة

لماذا يحدث؟
أُهملت المفاتيح والجلب والتصفية.
كيف تصلحه؟
قارن العمل بالمطلوب والتوزيع.
كيف تتجنب تكراره؟
استخدم المقاييس والمعاملات لا الاسم فقط.

يعامل زمن explain كزمن التطبيق

لماذا يحدث؟
اختلط القياس والمخبأ وكلفة الطلب.
كيف تصلحه؟
قس مسار التطبيق منفصلاً ببيئة معتمدة.
كيف تتجنب تكراره؟
سجل الأمر المنتج لكل زمن.

تفقد إعادة أسرع وثائق لازمة

لماذا يحدث؟
تغيرت الشروط أو المصفوفة أو النطاق.
كيف تصلحه؟
قارن المعرفات والمجاميع قبل الأداء.
كيف تتجنب تكراره؟
اجعل تكافؤ المعنى شرط تحسين.

اختبر فهمك

1. يعيد بحث نقطة وثيقة بعد فحص50000. ماذا تفحص قبل فهرس آخر؟

اعرض الحل المشروح

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

2. يعيد التجميع مجموعاً بعد مليون دفعة مطابقة. هل النسبة وحدها فشل؟

اعرض الحل المشروح

لا؛ قد يلزم كل المدخل. افحص المجموعة والترشيح المبكر وهل يبرر هدف الزمن ملخصاً وسياسة حداثة. قارن العمل والصيانة؛ لا يثبت الخرج الصغير إمكانية تقليل العمل دون تغيير العقد.

أهم ما تعلمته

  • explain دليل تخطيط وتنفيذ لا قياس عام.
  • احفظ المعنى عند علاج القيد المقاس.

المراجع الرسمية