मारियाडीबी जावा क्लाइंट किस हद तक MySQL JDBC (कनेक्टर / J) के लिए एक सही प्रतिस्थापन है?


11

परिसर : मैं एक जावा एप्लिकेशन को शिप करता हूं जो एक JDBC कनेक्शन को MySQL डेटाबेस से जोड़ देगा। (इस लेखन के समय यह 5.1 या 5.5 हो सकता है, लेकिन उम्मीद है कि प्रश्न और उत्तर संस्करण पर बहुत अधिक भरोसा नहीं करते हैं।)

अवलोकन : स्पष्ट रूप से, मैं MySQL सर्वर से कनेक्शन बनाने के लिए MySQL JDBC ड्राइवर ( कनेक्टर / J ) या MariaDB JDBC ड्राइवर ( मारियाडीबी जावा क्लाइंट ) का उपयोग कर सकता हूं । एक ISV के दृष्टिकोण से एक बड़ा लाभ यह है कि MariaDB ड्राइवर LGPL लाइसेंस प्राप्त है जबकि MySQL ड्राइवर GPL लाइसेंस प्राप्त है। मारियाडीबी ड्राइवर का प्रदर्शन बहुत अच्छा लगता है।

प्रश्न : मारियाडीबी जेडीबीसी ड्राइवर किस हद तक MySQL JDBC ड्राइवर के लिए एक सही प्रतिस्थापन है?

मैं दोनों के सापेक्ष गुणों पर बहस की तलाश में नहीं हूं। लेकिन इसके बजाय मुझे उम्मीद है कि कोई इनमें से किसी एक की तर्ज पर जवाब दे सकता है:

  • MariaDB JDBC ड्राइवर के पास X और Y के साथ महत्वपूर्ण मुद्दे हैं, इसलिए यदि आप इनमें से किसी एक का उपयोग करते हैं तो आपको परेशानी होगी।
  • कुछ लेख या विनिर्देश या कोड या अन्य साक्ष्यों के आधार पर, MariaDB JDBC ड्राइवर पूरी तरह से [कम से कम] सभी तरीके MySQL ड्राइवर में उपलब्ध है। ठीक हो जायेंगे।

MariaDB क्लाइंट क्लाइंट साइड पर तैयार स्टेटमेंट को हैंडल करता है। यह एक मुद्दा हो सकता है।
Mat

1
मैं जोड़ सकता हूं कि मुझे कोई समस्या नहीं हुई है। यह शायद ही एक व्यापक जवाब है, लेकिन यह एक अच्छा संकेत है।
mdahlman

@ अद्यतन: useServerPrepStmtsजब 1.3.0से 1.6.0यह डिफ़ॉल्ट रूप से बंद है , तब से है। पता नहीं क्यों।
मातरिनस

जवाबों:


6

मैं थोड़ा घबरा रहा हूं।

सबसे पहले, उल्टा: मैंने डेटाबेस कनेक्शन पूल के साथ उत्पादन में "हमेशा ऑन" सेवा में मारियाडीबी जेडीबीसी ड्राइवर का उपयोग किया है और यह अब कुछ महीनों से ठीक चल रहा है। सेवा केवल मूल JDBC फ़ंक्शंस का उपयोग सरल प्रश्नों के साथ करती है (जैसे कोई जोड़ नहीं, कोई बूँद नहीं)। मैं एक और "हमेशा ऑन" सेवा जारी करने वाला हूं जो कि इसी तरह से मारियाडीबी जेडीबीसी ड्राइवर का उपयोग करती है।
मैंने (फिर से) स्रोत कोड को देखने के बाद MariaDB JDBC ड्राइवर का उपयोग करने का निर्णय लिया: Oracle MySQL JDBC ड्राइवर स्रोत कोड की तुलना में MariaDB JDBC ड्राइवर स्रोत कोड बहुत अधिक पठनीय और समझने योग्य है।

लेकिन मुझे आभास होता है (9/2014) विकास धीमा हो गया है (लिंक एक ग्राफ है जो बग बनाए बनाम हल किए हुए दिखा रहा है)। अगर मैं खुले बग के माध्यम से ब्राउज़ करता हूं तो मुझे कई गंभीर कीड़े बहुत लंबे समय तक खुले दिखाई देते हैं (हाइबरनेट और समय-क्षेत्र या दिनांक के साथ समस्याएं)। इनमें से कुछ कीड़े नहीं हो सकते हैं लेकिन फिर उन्हें अब तक बंद कर दिया जाना चाहिए था। मुझे एक बग का भी सामना करना पड़ा ( STASH-4012 के माध्यम से ) जिसे फिर से खोला जाना चाहिए: बग CONJ-72 बंद है लेकिन अंतिम टिप्पणी (4/2014 से) इंगित करता है कि समस्या हाइबरनेट के लिए हल नहीं हुई है।

सभी में मैं मारियाडीबी जेडडीबीसी ड्राइवर को ओरेकल मायक्यूडी जेडडीबीसी ड्राइवर के लिए एक सही प्रतिस्थापन नहीं मानता। मुझे अब इसके लिए सरल सामग्री (जहां सभी प्रश्नों को पहले से जाना जाता है और परीक्षण किया जाता है) के लिए उपयोग करना जारी रखना अच्छा लगता है, लेकिन मुझे भविष्य में Oracle MySQL JDBC ड्राइवर पर वापस स्विच करना पड़ सकता है।


2
विकास ने नवंबर 2014 में उठाया। एक अपडेट के लिए वैनोकेल की प्रतिक्रिया में 'धीमा हो गया' लिंक पर क्लिक करें। जनवरी 2015 में एक नई स्थिर रिलीज़ हुई
डेविड एच। बेनेट

2

एक और बात ध्यान रखें कि यदि आपके पास नॉन-जीपीएल सॉफ्टवेयर वितरित करना है तो आपके पास कोई विकल्प नहीं है । यदि आप किसी लाइसेंस के तहत सॉफ़्टवेयर वितरित करते हैं, लेकिन जीपीएल, ओरेकल आपको कॉपीराइट उल्लंघन के लिए मुकदमा कर सकता है यदि आप उनके ड्राइवरों का उपयोग करते हैं।


आपके पास विकल्प है। आप ओरेकल को पैसे सौंप सकते हैं और वे आपको एक वाणिज्यिक लाइसेंस के साथ ग्राहक का उपयोग करने की अनुमति देंगे!
जोसेफ का कहना है कि मोनिका
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.