मैं मौजूदा स्क्रिप्ट में here मिली MySQL क्लास के उपयोग को लागू करने पर काम कर रहा हूं। स्क्रिप्ट को लगभग हमेशा डेटाबेस के साथ बातचीत करने की आवश्यकता होती है, भले ही ऐसा समय न हो। इस मामले में सबसे अच्छा अभ्यास क्या है? क्या मुझे एक कनेक्शन खोलना चाहिए और स्क्रिप्ट के अंत तक इसे खोलना चाहिए या जब मुझे एक की आवश्यकता हो, तो मुझे कनेक्शन खोलना चाहिए, जब इसे पूरा किया जाए तो इसे बंद कर दें, जब स्क्रिप्ट की आवश्यकता नहीं होती है तो कनेक्शन खोलने से बचने के लिए?डेटाबेस कनेक्शन कहां और कब खोलें
उत्तर
क्योंकि कनेक्शन महंगे हैं, क्योंकि अन्य ने इंगित किया है, मैं आपकी डेटाबेस परत में "आलसी कनेक्ट" तकनीक का उपयोग करने की सलाह दूंगा। यदि आपने अपने आवेदन को प्रभावी रूप से संरचित किया है, तो आपके एप्लिकेशन तर्क से संबंधित नहीं होना चाहिए जब कनेक्शन खोले जाते हैं और बंद होते हैं क्योंकि यह डेटाबेस परत में encapsulated किया जाएगा। डेटाबेस परत, जब कोई क्वेरी करने के लिए कहा जाता है, तो पहले यह देखने के लिए जांच करेगा कि उसके पास एक सक्रिय कनेक्शन है या नहीं, तो एक बनाएं। इस तरह आप उन कनेक्शन खोलने से बचेंगे जिनका उपयोग कभी नहीं किया जाता है और आपके पास अपने एप्लिकेशन और डेटाबेस कोड के बीच तर्क का एक अच्छा अलगाव भी होगा।
+1 अच्छा जवाब। –
आप एक दिए गए कनेक्शन को कब बंद करेंगे? – Tyler
संक्षेप में, जैसे ही आप इसके साथ काम कर रहे हैं, डेटाबेस कनेक्शन बंद करें। मेरे वर्तमान एप्लिकेशन में, हमारे पास एक सुंदर साफ पृष्ठ पीढ़ी की प्रक्रिया है: हम डेटाबेस से हमें आवश्यक सभी डेटा लेते हैं, इसे उस रूप में मालिश करते हैं जिसकी हमें आवश्यकता होती है, इसे टेम्पलेट ऑब्जेक्ट में फेंक दें, डेटाबेस_ से डिस्कनेक्ट करें, और फिर वास्तव में जेनरेट करें और पेज के लिए एचटीएमएल आउटपुट। –
ठीक है, यदि आप कक्षा का उपयोग कर रहे हैं, तो जब आप कक्षा को तुरंत चालू करते हैं, या जब पहली क्वेरी की जाती है तो कनेक्शन स्वचालित रूप से खोला जाना चाहिए। यदि आप कक्षा का कभी भी उपयोग नहीं करते हैं, तो कनेक्शन खोला नहीं जाएगा। जब आपको इसकी आवश्यकता नहीं होती है, तो इसे बंद करने के लिए अच्छा अभ्यास है, लेकिन अनुरोध थ्रेड मरने पर इसे बंद होने से कोई दिक्कत नहीं होती है।
यदि आपके पास php.ini फ़ाइल में संसाधन सीमाएं सेट नहीं हैं, तो यह बुरा हो सकता है, अनुरोध हमेशा के लिए लाइव हो सकता है और कनेक्शन को कभी बंद नहीं कर सकता है।
यदि आपके पास मध्यम से उच्च ट्रैफ़िक साइट है, तो आपको mysql_pconnect का उपयोग करने के बारे में सोचना चाहिए, इसलिए हमेशा एक कनेक्शन खुला रहता है और आपको प्रत्येक अनुरोध पर एक खोलने के ऊपरी हिस्से की आवश्यकता नहीं होती है।
आमतौर पर आप उस कनेक्शन का उपयोग करने की आवश्यकता होने पर ही अपने डेटाबेस में कनेक्शन खोलना चाहते हैं। कनेक्शन खोलने से आपके कोड का हिस्सा आकस्मिक रूप से, या दुर्भावनापूर्ण रूप से दूसरों के कार्यों के माध्यम से हो सकता है, डेटाबेस पर अवांछित प्रश्नों का कारण बन सकता है।
यह मामला होने पर, आपको अपने प्रश्नों को चलाने से पहले कनेक्शन खोलना चाहिए। यदि आपके पास बड़ी संख्या में प्रश्न हैं, तो संभवतः प्रक्रिया में देर से अपना कनेक्शन खोलने का प्रयास करें।
बेहतर है कि एकाधिक कनेक्शन खोलने और बंद करने की तुलना में लंबी अवधि के लिए एक कनेक्शन खुला रहता है।
हाँ, कनेक्शन खोलना महंगा है। –
यदि आपका कोड प्रदर्शन-संवेदनशील है, तो पसंदीदा तकनीक कनेक्शन पूलिंग और/या लगातार प्रक्रियाओं के कुछ रूपों का उपयोग करने के लिए होती है ताकि आप एक डेटाबेस कनेक्शन खोल सकें और फिर उस कनेक्शन का उपयोग कई पेज अनुरोधों के बजाय कर सकें प्रत्येक अनुरोध के लिए एक नया कनेक्शन खोलने से पहले एक की आवश्यकता है।
यदि आपका कोड प्रदर्शन-संवेदनशील नहीं है, तो यह वास्तव में किसी भी तरह से कोई फर्क नहीं पड़ता।
किसी भी तरह से, जब किसी विशिष्ट अनुरोध को संभालने के दौरान डेटाबेस का उपयोग किया जाता है तो सटीक समय चिंता का कारण नहीं है।
मेरा व्यक्तिगत अभ्यास एक नया हैंडलर प्रक्रिया उत्पन्न होने पर तुरंत डेटाबेस कनेक्शन खोलना है, फिर सत्यापित करें कि जब भी मैं प्रत्येक अनुरोध को संसाधित करना शुरू करता हूं तब भी यह जीवित है। शेष कोड तब यह मानने के लिए स्वतंत्र होता है कि जब उपयोगकर्ता प्रतिक्रिया के लिए प्रतीक्षा कर रहा है तो कनेक्ट होने की लागत के बिना कनेक्शन उपलब्ध हो जाता है।
- 1. जावा में डेटाबेस कनेक्शन दोबारा खोलें
- 2. डेटाबेस कनेक्शन सेटिंग्स कहां रखना है?
- 3. मल्टीथ्रेडिंग और डेटाबेस कनेक्शन
- 4. व्यवस्थापक खाता: कहां, कब और कैसे?
- 5. पायथन ट्विस्ट और डेटाबेस कनेक्शन
- 6. डेटाबेस खोलें और sqlite3 में टेबल देखें?
- 7. डेटाबेस कनेक्शन पूल बनाना
- 8. कब तक एक PHP MySQL डेटाबेस कनेक्शन सक्रिय रहते है?
- 9. मुझे डेटाबेस कनेक्शन स्ट्रिंग कहां स्टोर करनी चाहिए?
- 10. c3p0 सभी डेटाबेस कनेक्शन को कैसे बंद करें और आवश्यकता होने पर उन्हें फिर से खोलें?
- 11. कोर डेटा डेटाबेस कैसे खोलें?
- 12. डेटाबेस दृश्यों का उपयोग कब करें और कब नहीं?
- 13. एंड्रॉइड कब मुझे खोलना और डीबी कनेक्शन बंद करना चाहिए?
- 14. एसक्यूएल कॉम्पैक्ट डेटाबेस को कैसे खोलें केवल
- 15. कब, कहां और कैसे कतारों का उपयोग किया जाना चाहिए?
- 16. सिम्फनी 2: एकाधिक और गतिशील डेटाबेस कनेक्शन
- 17. सी # डेटाबेस कनेक्शन देरी
- 18. कोडनिर्देशक - एकाधिक डेटाबेस कनेक्शन
- 19. भंडारण डेटाबेस कनेक्शन
- 20. कनेक्शन एक दूरस्थ डेटाबेस
- 21. डेटाबेस कनेक्शन php-mysql
- 22. विषम डेटाबेस कनेक्शन
- 23. डेटाबेस कनेक्शन जानकारी
- 24. Django डेटाबेस कनेक्शन त्रुटि
- 25. एंटिटी फ्रेमवर्क कब डेटाबेस कनेक्शन खोलता है और बंद करता है?
- 26. वैश्विक परिवर्तनीय - डेटाबेस कनेक्शन?
- 27. कनेक्शन पूल से डेटाबेस कनेक्शन प्राप्त करें
- 28. जावा मॉक डेटाबेस कनेक्शन
- 29. मुझे मोंगोडीबी कनेक्शन कब खोलना और बंद करना चाहिए?
- 30. कनेक्शन कैसे प्राप्त करें डेटाबेस से स्ट्रिंग
+1 उत्कृष्ट प्रश्न – Tyler