2013-04-23 7 views
5

मेरे पास एक मोंगोडीबी क्वेरी है जिसे मैं अनुकूलित करने की कोशिश कर रहा हूं। मैंने एक इंडेक्स बनाया जो क्वेरी में फ़ील्ड से मेल खाता है, लेकिन मुझे लगता है कि और milli एस संकेतित संस्करण के लिए बेहतर हैं, भले ही मुझे मोंगो डीबी के क्वेरी प्लानर को स्पष्ट hint() के बिना इंडेक्स का उपयोग करने के लिए प्रतीत नहीं होता है।मोंगोडीबी सही सूचकांक का उपयोग क्यों नहीं कर रहा है?

यहाँ अनुक्रमित, क्वेरी (के साथ या बिना संकेत) कर रहे हैं, और एक वर्बोज़ व्याख्या करते हैं:

http://paste.roguecoders.com/p/4face5649612e840da04c5fea0491c9b.txt

जानकारी का एक अतिरिक्त बिट: यह सूचकांक एक बड़े ish संग्रह में है, में एक प्रतिकृति सेट, इसलिए मैंने offline method का उपयोग कर इंडेक्स बनाया। यह अब सभी नोड्स में मौजूद है।

(मूलतः MongoDB-User पर पोस्ट।)

+0

क्या हुआ अगर आपने अनुक्रमणिका बनाई: 'owner_1_date_-1_from_backup_1'? – Sammaye

+0

मेरी अनुक्रमणिका सही है। मैं 'तारीख' पर सॉर्ट कर रहा हूं। (और 'संकेत()' यह पुष्टि करता है कि यह बेहतर है।) इस संग्रह को हमारे उत्पादन डेटासेट पर इंडेक्स करने में एक घंटे लगते हैं, इसलिए मैं बिना किसी अच्छे कारण के चीजों को आजमाने की इच्छा नहीं रखता हूं। (-: – scoates

+2

यह लिंक आपको बता सकता है कि आपको 'scanAndOrder' क्यों मिल रहा है http://blog.mongolab.com/2012/06/cardinal-ins/ यह भी समझा सकता है कि क्यों मोंगोडीबी आपके बनाए गए इंडेक्स को इष्टतम – Sammaye

उत्तर

3

यह जो {$ में: []} में से एक मान जब सर्वर 5063 फिक्स को प्रभावित करता है 2.4 में एक प्रतिगमन के लिए हो रहा है खंड "अशक्त" है। मैंने इसे नया टिकट https://jira.mongodb.org/browse/SERVER-9495 के रूप में दायर किया जो मुझे उम्मीद है कि जल्द ही ट्रायल और तय किया जाएगा।

इस बीच, सही/गलत के साथ शून्य मान (या फ़ील्ड की अनुपस्थिति) क्यों हैं, इस पर निर्भर करता है कि आपके पास कई विकल्प हैं, कुछ में कुछ बदलते हुए क्वेरी को बदलना शामिल है। मैं सिर्फ 2.2 के लिए डाउनग्रेड करने की सलाह नहीं दूंगा, लेकिन यह भी एक संभावना है।

संबंधित मुद्दे