explain() (شرح خطة التنفيذ)

آخر تحديث: 2026-10-09

explain() (شرح خطة التنفيذ)

تكشف explain() خطة تنفيذ الاستعلام: `db.users.find({ age: { $gt: 20 } }).explain('executionStats')`. تعرض النتيجة استخدام الفهرس والمستندات المفحوصة والتوقيت — الأدوات الأساسية لضبط الأداء. يمكن أن يكون الوسيط 'queryPlanner' (الافتراضي، الخطة فقط)، أو 'executionStats' (إحصائيات تنفيذ فعلية)، أو 'allPlansExecution' (كل خطط المرشح).

الفئةالمؤشر
إصدار MongoDB1.0+
لغة المثالmongosh (الطرفية)

📝 الصيغة

db.<collection>.find(<filter>).explain(<verbosity>)

⚙️ المعلمات

الوضعاختياري. ‏'queryPlanner' أو 'executionStats' أو 'allPlansExecution'.

القيمة المرجعة:مستند يحتوي على خطة التنفيذ والإحصاءات.

▶ مثال

نفّذ الأوامر التالية في mongosh المحلي لديك (يتطلب تشغيل mongod):

// explain: التحقق هل يستخدم استعلام age فهرسًا
const plan = db.users.find({ age: { $gt: 20 } })
  .explain('executionStats')
print('Docs examined: ' + plan.executionStats.totalDocsExamined)

المخرجات:

Docs examined: 1000

📌 ملاحظات

📚 دروس ذات صلة

❓ الأسئلة الشائعة

Qكيف أعرف هل يستخدم الاستعلام فهرسًا؟
Aافحص winningPlan: IXSCAN تعني استخدام فهرس، وCOLLSCAN تعني فحص المجموعة بالكامل.
Qما الاختلافات بين أوضاع explain الثلاثة؟
AqueryPlanner يعرض الخطة فقط وهو الأسرع؛ executionStats يضيف إحصائيات التنفيذ الفعلية؛ allPlansExecution يفصّل كل خطط المرشح.
Qهل تشغّل explain الاستعلام فعلًا؟
Aتنفّذه فعلًا (ما عدا في وضع queryPlanner) — الإحصائيات من تشغيل حقيقي، لكن لا تُعاد أي مستندات.
Web-Tutorial.com

فريق Web-Tutorial التقني

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

100%