Latest web development tutorials

تحليل الاستعلام MongoDB

MongoDB الاستعلام والتحليل لضمان فعالية مؤشر المقترحة لدينا هو أداة هامة للاستعلام تحليل الأداء.

MongoDB تحليل الاستعلام المهام شائعة الاستخدام هي: شرح () وإشارة ().


استخدام شرح ()

شرح توفر العملية المعلومات الاستعلام، استخدام مؤشر والاستعلام الإحصاءات. تساعدنا على تحسين مؤشر.

بعد ذلك قمنا بإنشاء الجنسين مؤشر والمستخدمين اسم_المستخدم في جمع:

>db.users.ensureIndex({gender:1,user_name:1})
</p>
<p>现在在查询语句中使用 explain :</p>
<pre>
>db.users.find({gender:"M"},{user_name:1,_id:0}).explain()

شرح فوق () الاستعلام بإرجاع النتائج التالية:

{
   "cursor" : "BtreeCursor gender_1_user_name_1",
   "isMultiKey" : false,
   "n" : 1,
   "nscannedObjects" : 0,
   "nscanned" : 1,
   "nscannedObjectsAllPlans" : 0,
   "nscannedAllPlans" : 1,
   "scanAndOrder" : false,
   "indexOnly" : true,
   "nYields" : 0,
   "nChunkSkips" : 0,
   "millis" : 0,
   "indexBounds" : {
      "gender" : [
         [
            "M",
            "M"
         ]
      ],
      "user_name" : [
         [
            {
               "$minElement" : 1
            },
            {
               "$maxElement" : 1
            }
         ]
      ]
   }
}

الآن، ونحن ننظر في مجال مجموعة النتائج:

  • indexOnly: المجال هو الصحيح، وأننا استخدام الفهرس.
  • المؤشر: لأن هذا الاستعلام يستخدم هذا المؤشر، يتم تخزين الأرقام القياسية MongoDB في هيكل B-شجرة، لذلك فإنه يستخدم أيضا نوع BtreeCursor من المؤشر. إذا كنت لا تستخدم المؤشر، ونوع المؤشر BasicCursor. وهذا المفتاح إعطاء اسم الفهرس الذي تستخدمه، يمكنك أن ترى من قبل باسم system.indexes المحددة في إطار قاعدة البيانات الحالية (تم إنشاؤه تلقائيا، حيث يتم تخزين معلومات الفهرس، سوف يكون هذا الذكر قليلا) للحصول على فهرس مزيد من المعلومات .
  • ن: عدد من الوثائق التي تم إرجاعها بواسطة الاستعلام الحالي.
  • nscanned / nscannedObjects: أظهر التحقيق أن العدد الإجمالي الحالي من المستندات الممسوحة ضوئيا في جمع وهدفنا هو جعل هذه القيمة وإرجاع عدد من الوثائق وأقرب كلما كان ذلك أفضل.
  • بالمللي: الوقت الحالي، وعدد من ميلي ثانية التي يحتاجها الاستعلام.
  • indexBounds: مؤشر الاستعلام الحالي استخدام محدد.

استخدام تلميح ()

في حين MongoDB محسن الاستعلام يعمل عموما بشكل جيد للغاية، ولكن يمكنك أيضا استخدام تلميحات لإجبار MongoDB لاستخدام الفهرس المحدد.

وهذا النهج تحسين الأداء في بعض الحالات. فهرس جمع وتنفيذ الاستعلام أكثر من حقل واحد (تم فهرستها بعض الحقول).

تستخدم الأمثلة يحدد الاستعلام التالي مجالات النوع الاجتماعي ومؤشر اسم_المستخدم للاستعلام:

>db.users.find({gender:"M"},{user_name:1,_id:0}).hint({gender:1,user_name:1})

يمكنك استخدام وظيفة شرح () لتحليل الاستعلام أعلاه:

>db.users.find({gender:"M"},{user_name:1,_id:0}).hint({gender:1,user_name:1}).explain()