2011-12-06 8 views
6

मैं मोंगोडबी का मूल्यांकन कर रहा हूं, जो मेम्बेड/मेमकैड से आ रहा है क्योंकि मुझे अधिक लचीलापन चाहिए।मोंगो डीबी बहु-कुंजी लुकअप करने में सक्षम है?

बेशक मेम्बेस तेजी से (बहु) -की लुकअप करने में उत्कृष्ट है।

मुझे अतिरिक्त विकल्प पसंद हैं जो मोंगोडीबी मुझे देता है, लेकिन क्या यह मल्टी-कुंजी लुकअप करने में भी तेज़ है? मैंने ऑपरेटर में $ या $ $ देखा है और मुझे यकीन है कि मैं इसे इसके साथ मॉडल कर सकता हूं। मैं सिर्फ यह जानना चाहता हूं कि यह प्रदर्शनकर्ता है (उसी लीग में) मेम्बेस के रूप में।

उपयोग-मामले, उदाहरण के लिए, लुसीन/सोलर 20 उत्पाद-आईडी देता है। डॉक्स/उपयुक्त फ़ील्ड लौटने के लिए इन उत्पाद-आईडी को कॉचडब में देखें।

धन्यवाद, गीर्ट-जन क्वेरी के साथ

उत्तर

3

आपके उपयोग के मामले में, मैं कहूंगा कि यह मेरे अनुभव से है: मैंने कुछ डेटाबेस को मेरे डेटाबेस में हैक किया है जिसने हजारों आईडी के साथ $in प्रश्नों को बनाया है और यह ठीक काम करता है (यह एक हैक था) । मेरे आश्चर्य के लिए, यह निचले मिलीसेकंद क्षेत्र में, बल्कि अच्छी तरह से काम किया।

बेशक, इसकी तुलना करना मुश्किल है, और सामान्य - सिद्धांत प्रदर्शन के समय एक बुरा साथी है। मुझे लगता है कि इसे समझने का सबसे अच्छा तरीका कुछ परीक्षण डेटा माइग्रेट करना और सिस्टम को कुछ प्रश्न भेजना है।

मोंगोडीबी के उत्कृष्ट अंतर्निर्मित प्रोफाइलर का उपयोग करें, $explain का उपयोग करें, एक इंडेक्स प्रति प्रश्न नियम को ध्यान में रखें, लॉग पर नज़र डालें, मोंगोस्टैट पर नजर रखें, और कुछ मानक बनाएं। यह बहुत लंबा नहीं लेना चाहिए और आपको एक निश्चित और सकारात्मक जवाब देना चाहिए। यदि आपके प्रश्न धीमे हो जाते हैं, तो यहां और समाचार समूह के लोगों के पास शायद कुछ विचार हैं कि सटीक क्वेरी, या अनुक्रमण में सुधार कैसे करें।

+0

ठीक है, मैं एक नज़र रखूंगा। ऐसा लगता है कि मोंगो-डीबी अपने सूचकांक के लिए कवर के तहत बी-पेड़ का उपयोग करता है, जिसका मतलब है कि प्राथमिक कुंजी पर एक्स उत्पादों को देखना संभवतः ओ (एक्स * लॉग एन) (एमबीएस के लिए जटिलता ओ (एक्स) की बजाय हैशट्री/टेबल) .. यदि सूचकांक मेम में है, तो यह शायद मेरे उपयोग-मामले के लिए उपेक्षित है। धन्यवाद –

1

एक सूचकांक। कभी-कभी सोचा जाता है कि एकाधिक कुंजी पर प्रश्न एकाधिक अनुक्रमणिका का उपयोग कर सकते हैं; यह मोंगोडीबी के साथ मामला नहीं है। यदि आपके पास एक क्वेरी है जो एकाधिक कुंजी पर चयन करती है, और आप क्वेरी को मैन्युअल रूप से उपयोग करने के लिए क्वेरी चाहते हैं, तो एक कंपाउंड-कुंजी इंडेक्स आवश्यक है।

http://www.mongodb.org/display/DOCS/Indexing+Advice+and+FAQ#IndexingAdviceandFAQ-Oneindexperquery

इंडेक्स के संबंध में उस पृष्ठ पर और जानकारी है।

नीचे की रेखा मोंगो महान होगी यदि आपकी अनुक्रमणिका मेमोरी में हैं और आप उन कॉलम पर अनुक्रमणित कर रहे हैं जिन्हें आप समग्र कुंजी का उपयोग करके क्वेरी करना चाहते हैं। यदि आपके पास खराब अनुक्रमण है तो परिणामस्वरूप आपका प्रदर्शन भुगतना होगा। यह ज्यादातर प्रणालियों के साथ काफी ज्यादा है।

+0

मल्टीकी! = एकाधिक इंडेक्स – mnemosyn

+0

नहीं, लेकिन यह सीधे उनके प्रश्न से संबंधित नहीं है। यदि वह समग्र कुंजी बनाने के बिना एकाधिक कॉलम पर क्वेरी करने की उम्मीद कर रहा है तो प्रदर्शन भुगतना होगा। अगर वह सही समय पर इंडेक्स में बिताने के लिए तैयार है तो मोंगो निश्चित रूप से पर्याप्त होगा। – methodin

+0

मैं 'एक सूचकांक प्रति क्वेरी'-समझ को समझता हूं क्योंकि यह समग्र कुंजी बनाने के लिए संदर्भित करता है ताकि आपको केवल क्वेरी के लिए एक अनुक्रमणिका की आवश्यकता हो। इस विशेष उपयोग-मामले को समग्र सूचकांक की आवश्यकता नहीं है, आदि। मेरे पास एक अद्वितीय उत्पादक के साथ लगभग 10 मिलियन दस्तावेज़ (उत्पाद) हैं। मैं जानना चाहता हूं कि '$ 0 (, , ) जैसी कोई क्वेरी कर रही है या नहीं, यह विशेष है कि उत्पादक प्राथमिक कुंजी है। तो मेरी क्वेरी को कवर करने वाला 1 सूचकांक होगा।शायद मैं अति उत्साही हो रहा हूं, लेकिन जब मैं ऐसा कुछ देखता हूं जो प्रदर्शन के बारे में बात करते समय एसक्यूएल इन-क्लॉज की तरह दिखता है तो मैं बहुत सावधान हूं। –

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