इससे पहले कि मैं प्रश्न पूछूं, पहले मुझे SQLite के बारे में अपने विचारों का वर्णन करने दें।
मैं ऐसे उपकरण पसंद करता हूं जो छोटे, तेज और अधिक महत्वपूर्ण हैं, केवल वास्तव में आवश्यक कार्यक्षमता है। इसलिए मुझे SQLite पसंद है और मुझे MS-SQL थोड़ा कम पसंद है।
उदाहरण के लिए: MS-SQL में बहुत अधिक कार्यक्षमता, मापनीयता, आदि हो सकते हैं, लेकिन यदि आप अशुभ हैं, तो इसे स्थापित करने के लिए दर्द भी हो सकता है। बेशक, मैं यह नहीं कह रहा कि एक कठिन स्थापना एक विशेष डेटाबेस का चयन न करने का एक कारण है।
मुझे गलत न समझें: MS-SQL एक उत्तम गुणवत्ता वाला उत्पाद है। मैं MS-SQL के साथ बहुत अनुभवी हूं; मैं एक पेशेवर के रूप में उत्पाद को बहुत अच्छी तरह से समझता हूं। मैं इसे कुछ परिस्थितियों में कम पसंद करता हूं, जहां इसकी वास्तव में जरूरत नहीं है (= कई उपयोगकर्ता नहीं, <10-15)।
डेटाबेस की कार्यक्षमता का आप वास्तव में कितना उपयोग करते हैं? मेरे अनुभव में यह अक्सर सामान्य एसक्यूएल (चयन, INSERT और अद्यतन) है।
मुझे SQLite पसंद है। मोहक तेज है। "इंस्टॉल" करना बेहद आसान है। मुझे लगता है कि SQLite जितना दावा कर सकती है, उससे अधिक कर सकती है। केवल एक-प्रक्रिया / एकल उपयोगकर्ता अनुप्रयोगों के लिए इसका उपयोग क्यों करें? सब के बाद: नहीं कई अनुप्रयोगों लगातार एक डेटाबेस का उपयोग कर रहे हैं।
उदाहरण के लिए: 15 उपयोगकर्ताओं के साथ, ईआरपी एप्लिकेशन पर विचार करें। उसके लिए SQLite का उपयोग क्यों नहीं किया जा सकता है? आइए इसका सामना करते हैं: मेरे पेशेवर अनुभव में इस तरह के एप्लिकेशन के अधिकांश उपयोगकर्ता डेटाबेस का उपयोग उस कुल समय के लगभग 5-10% के लिए करेंगे जो वे एप्लिकेशन का उपयोग कर रहे हैं। अन्य 90-95% में वे केवल स्क्रीन पर जानकारी देख रहे हैं, एक ग्रिड / फॉर्म में डेटा दर्ज कर रहे हैं और जब वे अपने इनपुट को बचाते हैं तो यह डेटाबेस के 1 सेकंड से अधिक नहीं होता है। Fe: 1,5 मिनट का इनपुट समय बनाम समय की बचत का 1 सेकंड।
यदि SQLite डेटाबेस फ़ाइल "सेविंग टाइम" के दौरान लॉक हो जाती है, तो अन्य उपयोगकर्ताओं को डेटाबेस तक पहुंचने की आवश्यकता होती है, लेकिन वे इस बात पर ध्यान नहीं देते हैं क्योंकि प्रतीक्षा समय बहुत छोटा होगा (ध्यान नहीं देने योग्य)। कोड में आपको केवल अपवादों से बचने के लिए डेटाबेस के संभावित "व्यस्त" समय से निपटना होगा, लेकिन ऐसा करना मुश्किल नहीं है।
कुछ लोग, जिन्हें मेरे जैसा ही सोचना चाहिए, ने भी SQLite के लिए एक क्लाइंट-सर्वर समाधान बनाया है: SQLitening । इससे मुझे यकीन हो गया कि मैं खुद को बेवकूफ नहीं बना सकता।
बेशक वहाँ डेटाबेस गहन अनुप्रयोग हैं जहाँ SQLite फिट नहीं है। लेकिन जैसा कि मैं अब इसके बारे में सोचता हूं, कई बहु-उपयोगकर्ता अनुप्रयोग, यदि वे 15 उपयोगकर्ता या उससे अधिक नहीं हैं, तो SQLite के साथ ठीक करना चाहिए।
हमारे कई ग्राहक हार्डवेयर पर ज्यादा खर्च नहीं करते हैं, इसलिए मैं अक्सर इस (एक्सचेंज, एसक्यूएल (एस), क्लाइंट्स, इत्यादि) के साथ एक एकमात्र सर्वर का सामना करता हूं और इस वजह से लगभग "सांस से बाहर" होते हैं। अगर मैं ऐसे उत्पाद का वितरण कर सकता हूं जो उच्च प्रणाली की आवश्यकताओं को पूरा नहीं करता है, तो मेरा ग्राहक खुश होगा। SQLite किसी भी वजन (कम से कम बहुत अधिक) को नहीं जोड़ता है, MS-SQL करता है। इसलिए मैं SQLite का चयन नहीं करूंगा क्योंकि यह मुफ़्त, सस्ता या स्थापित करने में आसान है। मैं इसे व्यावहारिक / तकनीकी कारणों से चुनूंगा।
FYI करें: मेरे पेशे में हम ग्राहकों को उत्पाद बेचते हैं (कस्टम और मानक, ज्यादातर ईआरपी संबंधित), जहां औसतन, 5-6 से अधिक लोग उत्पाद का उपयोग नहीं करेंगे। कुछ अपवाद हैं, लेकिन 10-15 से अधिक उपयोगकर्ता नहीं हैं।
प्रश्न यह है कि क्या मैं यह सोचने में सही हूं कि मैं उदाहरण के लिए कुछ बहु-उपयोगकर्ता एप्लिकेशन के लिए SQLite का उपयोग कर सकता हूं जैसे मैं वर्णन करता हूं? क्या कोई तकनीकी नुकसान हैं, जिनके बारे में मुझे पता होना चाहिए? आपके अनुभव (नकारात्मक या सकारात्मक) क्या हैं जो मुझे सही विकल्प बनाने में मदद करेंगे?
अद्यतन: कृपया इसे अन्य डेटाबेस के नकारात्मक निर्णय के रूप में न देखें। वे ज्यादातर सभी ठीक उत्पाद हैं। बस यहाँ मेरे विचारों को साझा करना और इस बारे में आपकी राय में दिलचस्पी।