MongoDB / دليل حلول تحريري

تشخيص بطء الاستعلام والفهارس وخطط التجميع

افصل الفحص غير الكفء عن التوجيه والانتظار، واستخدم explain مع حفظ دلالة الوثيقة والمصفوفة.

وقت القراءة التقريبي: 2 دقيقةتاريخ مراجعة المحتوى

قاعدة معرفة للقراءة فقط · بلا تعليقات عامة

تعرّف على الأعراض

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

افهم الأسباب المحتملة

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

أكد الصحة والمدخلات الممثلة

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

اقرأ شرح خطة محدداً

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

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

يقيم المركب وفق الشكل الكامل والتوزيع الفعلي.

قارن العمل المفحوص والمعاد بعناية

تنفذ executionStats الخطة مع مقاييسها على عينة معزولة. تضيف allPlansExecution تجارب لا قياس كل البدائل. يختلف المخبأ فلا تساوِ زمن التطبيق. افحص الأعداد حول التوسيع والربط والتجميع، وتحقق من غياب مراحل الكتابة؛ حتى القراءة مكلفة.

أصلح الاختلاف أو الوصول المثبت

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

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

المتوقع توزيع نوع العينة لا تحويل أو إصلاح آلي.

تحقق من نجاح الإصلاح

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

امنع تكرار المشكلة

  • راجع الفهارس والنمو ووحد BSON وحد المصفوفة والربط، وراقب الاتجاه دون أسرار، وأعد تفسير explain والتوافق بعد الترقية.

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