मैं अमेज़ॅन की डायनेमो डीबी देख रहा हूं क्योंकि ऐसा लगता है कि यह आपके डेटाबेस सर्वर को बनाए रखने और स्केल करने की सभी परेशानी दूर करता है। मैं वर्तमान में MySQL का उपयोग कर रहा हूं, और डेटाबेस को बनाए रखना और स्केल करना एक संपूर्ण सिरदर्द है।आप डायनेमो डीबी से कैसे पूछते हैं?
मैं प्रलेखन के माध्यम से चला गया है और मुझे अपने सिर को लपेटने की कोशिश करने में कठिनाई हो रही है कि आप अपने डेटा को कैसे व्यवस्थित करेंगे ताकि इसे आसानी से पुनर्प्राप्त किया जा सके।
मैं पूरी तरह से NoSQL और गैर-संबंधपरक डेटाबेस के लिए नया हूं।
डायनेमो दस्तावेज़ीकरण से ऐसा लगता है कि आप केवल प्राथमिक हैश कुंजी पर एक तालिका पूछ सकते हैं, और तुलनात्मक ऑपरेटरों की सीमित संख्या के साथ प्राथमिक श्रेणी कुंजी।
या आप एक पूर्ण टेबल स्कैन चला सकते हैं और इसमें एक फ़िल्टर लागू कर सकते हैं। पकड़ यह है कि यह एक समय में केवल 1 एमबी स्कैन करेगा, इसलिए आपको परिणामों की एक्स संख्या खोजने के लिए अपने स्कैन को दोहराना होगा।
मुझे एहसास है कि इन सीमाओं से उन्हें अनुमानित प्रदर्शन प्रदान करने की अनुमति मिलती है, लेकिन ऐसा लगता है जैसे यह आपके डेटा को प्राप्त करना वाकई मुश्किल हो जाता है। और पूर्ण टेबल स्कैन कर रहे हैं लगता है जैसे यह वास्तव में अक्षम होगा, और आपकी तालिका बढ़ने के साथ ही समय के साथ कम कुशल हो जाएगा।
उदाहरण के लिए, मेरे पास एक फ़्लिकर क्लोन है।
- छवि आईडी (संख्या, प्राथमिक हैश कुंजी)
- तिथि जोड़ी (संख्या, प्राथमिक रेंज कुंजी)
- उपयोगकर्ता आईडी (स्ट्रिंग)
- टैग (स्ट्रिंग सेट: मेरी छवियाँ मेज की तरह कुछ लग सकता है)
- आदि
तो क्वेरी का उपयोग कर रहा पिछले 7 दिनों से सभी छवियों की सूची और परिणामों की एक्स संख्या के लिए यह बहुत आसानी से सीमित करने के लिए सक्षम होगा।
लेकिन अगर मैं किसी विशेष उपयोगकर्ता से सभी छवियों को सूचीबद्ध करना चाहता हूं तो मुझे पूर्ण तालिका स्कैन करने और उपयोगकर्ता नाम द्वारा फ़िल्टर करने की आवश्यकता होगी। टैग के लिए वही होगा।
और क्योंकि आप केवल एक समय में 1 एमबी स्कैन कर सकते हैं, आपको छवियों की एक्स संख्या खोजने के लिए कई स्कैन करने की आवश्यकता हो सकती है। मुझे छवियों की एक्स संख्या पर आसानी से रुकने का कोई तरीका नहीं दिखता है। यदि आप 30 छवियों को पकड़ने की कोशिश कर रहे हैं, तो आपका पहला स्कैन 5 मिल सकता है, और आपका दूसरा 40 मिल सकता है।
क्या मेरे पास यह अधिकार है? क्या यह मूल रूप से एक व्यापार बंद है? आपको वास्तव में तेज़ अनुमानित डेटाबेस प्रदर्शन मिलता है जो वास्तव में रखरखाव मुक्त है। लेकिन व्यापार बंद यह है कि आपको परिणामों से निपटने के लिए और अधिक तर्क बनाने की जरूरत है?
या क्या मैं यहां पूरी तरह से आधार से बाहर हूं?
ठीक है कि अच्छी समझ में आता है। आप टैग की तरह कुछ कैसे करेंगे? प्राथमिक कुंजी टैग का नाम होगा, और फिर रेंज कुंजी छवि आईडी होगी? मुझे लगता है कि प्राथमिक कुंजी स्ट्रिंग सेट नहीं हो सकती है। – chriserwin
यह सही लगता है, लेकिन मैं डायनेमो डीबी के विवरण से परिचित नहीं हूं - इसके बजाय कैसंद्रा के साथ काम किया है। – DNA
जब मैं पहली बार ज़ेन से डायनेमोडीबी से पूछता हूं, इसमें 3 सेकंड लगते हैं। और फिर अन्य क्वेरी निष्पादित करने में एक सेकंड से भी कम समय लगता है। इसका कारण क्या हो सकता है? – keen