2010-04-06 33 views
8

यदि दस्तावेज़ों की संख्या अधिक है तो डेटा की क्वेरीिंग कोचडीबी में धीमी हो जाएगी?CouchDB क्वेरी प्रदर्शन

उदाहरण परिदृश्य:

  • मैं ग्राहक नाम के लिए एक के रूप में एक combobox है। जब उपयोगकर्ता ग्राहक नाम टाइप करता है, तो मुझे ऑटोफिलिंग करना होता है।
  • कॉच डीबी में लगभग 10k ग्राहक दस्तावेज़ होंगे। मैं समझता हूं कि मुझे ऐसा करने के लिए एक दृश्य बनाना है।
  • कॉच डीबी डेटाबेस स्थानीय मशीन में है जहां एप्लिकेशन रहता है।

प्रश्न: ग्राहक नामों के मिलान के लिए डीबी से पूछताछ करने में 2 से 3 सेकंड लगेंगे? क्या प्रत्येक प्रश्न के लिए अधिक समय लेना होगा यदि कॉच डीबी में कई दस्तावेज हैं (लगभग 100000 दस्तावेज कहें)?

विचार/अनुक्रमणिका बनाने के तरीके पर कोई संकेतक सहायक होंगे।

अग्रिम धन्यवाद।

उत्तर

7

दृश्य प्रत्येक दस्तावेज़ पर चलता है, लेकिन केवल एक बार। उसके बाद, दस्तावेज़ का दृश्य मान हमेशा के लिए संग्रहीत किया जाता है। नाम से ग्राहक को प्राप्त करना बहुत तेज़ होगा क्योंकि आपके पास आमतौर पर क्वेरी समय पर दृश्य में प्रक्रिया करने के लिए केवल कुछ नए दस्तावेज़ होंगे।

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

+0

हाय @ जेसनस्मिथ, धीमी पहली बार प्रदर्शन की समस्या से निपटने का कोई तरीका है? मैंने निश्चित रूप से देखा है कि दृश्य पर पहली हिट हमेशा के लिए लेती है (एक दृश्य में 10k दस्तावेज़ों से निपटना)। क्या यह पता लगाने का कोई तरीका है कि दृश्य पहली बार ऐसा करने से पहले चलाया गया है या नहीं? – Bundeeteddee

+0

@ बुन्डेडेटी आप? Stale = update_after विकल्प जोड़ सकते हैं, जो तुरंत दृश्य में जो कुछ भी वापस कर देगा, और यह पृष्ठभूमि में दृश्य को ताज़ा करना शुरू कर देगा। यह एक व्यापार बंद करेगा: आपको तुरंत जवाब मिल जाएगा, लेकिन यह नवीनतम डेटा नहीं हो सकता है। वैकल्पिक रूप से, आप _canges? Feed = निरंतर पूछ सकते हैं और फिर जब भी CouchDB आपको सूचित करता है कि कोई परिवर्तन हुआ है, तो आप दृश्य से पूछ सकते हैं। इसमें थोड़ा सा काम लगता है लेकिन यह सबसे निश्चित तरीका है – JasonSmith