MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB + Python - बहुत धीमी सरल क्वेरी

क्या आप सुनिश्चित हैं कि आपकी अनुक्रमणिका बनाई गई है? क्या आप getIndexes() . का आउटपुट प्रदान कर सकते हैं आपके संग्रह का

उदाहरण:db.my_collection.getIndexes()

और आपकी क्वेरी का स्पष्टीकरण

db.my_collection.find({created_at_year: 2014, created_at_month: 1, created_at_day: 28 }).explain()

पुनश्च:निश्चित रूप से मुझे इस तथ्य के बारे में @Aesthete से सहमत होना चाहिए कि आप अपनी आवश्यकता से कहीं अधिक स्टोर करते हैं...

29/1/2014 अपडेट

उत्तम! जैसा कि आप देखते हैं कि आपके पास चार अलग-अलग इंडेक्स हैं जब आप एक कंपाउंड इंडेक्स बना सकते हैं जिसमें वे सभी शामिल होंगे।

परिभाषित करना

db.my_collection.ensureIndex({created_at_year: 1, created_at_month: 1, created_at_day: 1, created_at_hour: 1 })

आपको एक अधिक सटीक अनुक्रमणिका प्रदान करेगा जो आपको निम्न के लिए क्वेरी करने में सक्षम बनाएगी:

  • year
  • year और month
  • year और month और day
  • year और month और day और hour

यह आपके प्रश्नों (चार कुंजियों के साथ) को बहुत तेज़ कर देगा, क्योंकि आपके सभी मानदंड इंडेक्स डेटा में पूरे होंगे!

कृपया ध्यान दें कि ensureIndex() . में चाबियों का क्रम महत्वपूर्ण है, वह आदेश वास्तव में प्रश्नों की उपर्युक्त सूची को परिभाषित करता है!

यह भी ध्यान दें कि यदि आपको केवल इन 4 क्षेत्रों की आवश्यकता है, यदि आप एक सही प्रक्षेपण निर्दिष्ट करते हैं
उदाहरण:
db.my_collection.find({created_at_year: 2014, created_at_month: 1, created_at_day: 28}, { created_at_year: 1, created_at_month: 1, created_at_day: 1 })

तब केवल सूचकांक का उपयोग किया जाएगा, जो कि अधिकतम प्रदर्शन है!



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose स्कीमा में अनेक मानों का उपयोग करने वाले अद्वितीय दस्तावेज़

  2. एक संग्रह को अनुक्रमित करने में मंगोलास्टिक को लंबा समय लग रहा है

  3. मोंगोडीबी $डिवाइड

  4. मोंगोडब एकत्रीकरण में सबस्ट्रिंग के साथ मिलान करें

  5. प्ले:JSON को MongoDB से लिखते/पढ़ते समय कैसे रूपांतरित करें?