तो, यह सौदा है। मैं एक एंड्रॉइड एप्लिकेशन विकसित कर रहा हूं (हालांकि यह किसी भी अन्य मोबाइल प्लेटफॉर्म के रूप में आसानी से हो सकता है) जो कभी-कभी सर्वर पर प्रश्न भेज रहा है (जिसे जावा लिखा गया है)। यह सर्वर तब क्वेरी के लिए एक MySQL डेटाबेस खोजेगा, और परिणामों को एंड्रॉइड पर वापस भेज देगा।(संभावित रूप से) सैकड़ों मोबाइल क्लाइंट्स को MySQL डेटाबेस तक पहुंचने का सबसे अच्छा तरीका क्या है?
एंड्रॉयड सर्वर के लिए एक नया TCP कनेक्शन हर बार यह प्रश्नों कर देगा: हालांकि यह काफी सामान्य लगता है, यहाँ कुछ विशेष कर रहे हैं। सर्वर भौगोलिक दृष्टि से बंद है, एंड्रॉइड संभावित रूप से बहुत से आगे बढ़ रहा है, और चूंकि एंड्रॉइड ऐप कुछ प्रश्नों को भेजते समय घंटों तक दौड़ सकता है, यह संसाधनों का सबसे अच्छा उपयोग प्रतीत होता है।
सर्वर पर इन प्रश्नों में से एक बार सैकड़ों (या संभवतः हजारों) भी हो सकते हैं।
चूंकि प्रत्येक क्वेरी अपने स्वयं के थ्रेड में चलती है, इसलिए प्रत्येक क्वेरी को कम से कम अपने वक्तव्य की आवश्यकता होगी (और इसका अपना कनेक्शन हो सकता है)।
अभी, सर्वर डेटाबेस में एक कनेक्शन बनाने के लिए स्थापित है, और फिर प्रत्येक क्वेरी के लिए एक नया स्टेटमेंट बनाएं। कुछ डेटाबेस अनुभव (विशेष रूप से MySQL, क्योंकि यह एक MySQL डेटाबेस है) के साथ आपके प्रश्न हैं:
ए) क्या यह एक कनेक्शन से प्रति थ्रेड एक स्टेटमेंट बनाने के लिए सुरक्षित है? जो मैं समझता हूं उससे, सिर्फ पुष्टि की तलाश है।
बी) क्या एकाधिक धागे के लिए एक एकल तैयार चरण का उपयोग करने के लिए कोई धागा सुरक्षित तरीका है? ये प्रश्न सभी बहुत समान होंगे, और चूंकि प्रत्येक थ्रेड केवल एक प्रश्न निष्पादित करेगा और फिर वापस आ जाएगा, यह आदर्श होगा।
सी) क्या मुझे प्रत्येक थ्रेड के लिए एक नया कनेक्शन बनाना चाहिए, या क्या यह एक ही कनेक्शन से नए स्टेटमेंट्स को बेहतर बनाना बेहतर है? मुझे लगता है कि एक कनेक्शन बेहतर प्रदर्शन-वार होगा, लेकिन मुझे नहीं पता कि डीबी कनेक्शन स्थापित करने के लिए ओवरहेड क्या है।
डी) क्या यह सब कुछ के लिए संग्रहीत एसक्यूएल प्रक्रियाओं का उपयोग करना सबसे अच्छा है?
इन मामलों में आपके अनुभव से किसी भी संकेत/टिप्पणियां/सुझावों की बहुत सराहना की जाती है।
संपादित करें:
बस स्पष्ट करने के लिए, एंड्रॉयड सर्वर है, जो तब डेटाबेस प्रश्नों के लिए नेटवर्क पर क्वेरी भेजता है। एंड्रॉइड सीधे डेटाबेस के साथ संवाद नहीं करता है। मैं मुख्य रूप से यहां सर्वर-डेटाबेस कनेक्शन के लिए सर्वोत्तम प्रथाओं के बारे में सोच रहा हूं।
एक जावा सर्वर चल रहा है जो डेटाबेस तक पहुंचता है। मेरे प्रश्न मुख्य रूप से संबंधित हैं कि सर्वर को डेटाबेस तक कैसे पहुंचा जाना चाहिए। – Zarjio