رفتن به نوشته‌ها

دسته: MongoDB (مونگو دی‌بی)

محدودیت‌های مربوط به indexها

در این جلسه می خواهیم در رابطه با یک محدودیت در index ها صحبت کنیم تا با ابعاد جدید آن ها آشنا شوید. اگر یادتان باشد در جلسه ی قبل به دنبال افرادی گشتیم که سن آن ها بیشتر از 60 سال باشد: db.contacts.explain(“executionStats”).find({“dob.age”: {$gt: 60}}) اما اگر به دنبال افراد بالای 20 سال بگردیم چطور؟ db.contacts.explain(“executionStats”).find({“dob.age”: {$gt: 20}}) گزارشی که از کوئری بالا دریافت می شود نکات جالبی را برای ما دارد. مثلا “totalKeysExamined” روی 5000 است بنابراین تمام سند ها برگردانده شده اند و هیچ فردی جوان تر از 20 سال در داده های ما نیست. همچنین “executionTimeMillis” نیز برای من روی 13 میلی ثانیه است که نشان می دهد این کوئری نسبت به کوئری برای جست و جوی افراد بالای 60 سال زمان بیشتری برده است (تقریبا 2 برابر). نکته ی جالب تر اینجاست که اگر index را از فیلد age حذف کنیم، با نتایج غیر منتظره ای روبرو می شویم. برای حذف ایندکس ها می توانید از دستور dropIndex استفاده کرده و همان آرگومانی را به آن پاس می دهیم که در هنگام ساخت ایندکس پاس داده بودیم: