mysql2
एक अधिक आधुनिक प्रतिस्थापन . के रूप में है मौजूदा mysql
. के लिए मणि, जो पिछले कुछ समय से बासी है। मैंने यह भी सुना है कि लेखक अब इसका समर्थन नहीं कर रहा है और इसके बजाय हर किसी को अपने शुद्ध-रूबी संस्करण का उपयोग करने की सलाह देता है क्योंकि यह अधिक रूबी कार्यान्वयन के साथ संगत है (लेकिन बहुत है) धीमा)।
mysql
. के साथ पहला अंक मणि यह सी में किसी भी प्रकार की कास्टिंग नहीं करता है, यह आपको वापस रूबी स्ट्रिंग देता है जिसे आपको उचित रूबी प्रकारों में परिवर्तित करना होता है। शुद्ध-रूबी में ऐसा करना बेहद धीमा है, और उन वस्तुओं को ढेर पर बनाता है जिन्हें पहले स्थान पर मौजूद होने की आवश्यकता नहीं होती है। और जैसा कि हम सभी जानते हैं, रूबी की जीसी इसकी सुस्ती का प्राथमिक कारण है। इसलिए बेहतर होगा कि इससे बचें और जितना हो सके शुद्ध C में करें।
दूसरा यह है कि यह संपूर्ण . को अवरुद्ध करता है रूबी वीएम कनेक्ट करते समय, प्रश्न भेजते समय और प्रतिक्रियाओं की प्रतीक्षा करते हुए, और कनेक्शन बंद करते समय भी। mysqlplus
निश्चित रूप से इस मुद्दे में मदद करता है, लेकिन जहां तक मुझे पता है केवल प्रश्न भेजने के लिए।
mysql2
एपीआई को बेहद सरल रखते हुए इन समस्याओं को हल करना है। Eric Wong
(यूनिकॉर्न के लेखक) ने कुछ भयानक पैच का योगदान दिया है जो लगभग हर चीज को गैर-अवरुद्ध करते हैं और/या रूबी में जीवीएल जारी करते हैं। Mysql2::Result
क्लास एन्यूमरेबल को लागू करता है, इसलिए यदि आप जानते हैं कि किसी ऐरे का उपयोग कैसे किया जाता है, तो आप इसका उपयोग करना जानते हैं।
मुझे इस बात की जानकारी है कि अभी कुछ लोग इसका उत्पादन में उपयोग कर रहे हैं, लेकिन इसका मूल्यांकन Twitter, WorkPoint और UserVoice पर भी किया जा रहा है।
मैं Yehuda
के साथ भी बातचीत कर रहा हूं जब यह जहाजों के लिए रेल 3 के लिए अनुशंसित/डिफ़ॉल्ट होने के बारे में है। इसकी कुछ तकनीकों और अनुकूलन को DataObjects के do_mysql
में भी लाया जा रहा है। ड्राइवर भी जल्द ही।
ActiveRecord ड्राइवर इस समय काफी ठोस होना चाहिए। आपको केवल मणि स्थापित करने की आवश्यकता है, और डेटाबेस.yml में अपने एडेप्टर का नाम बदलकर mysql2
कर दें। ।
यदि आप इसका उपयोग करने में रुचि रखते हैं, तो इसे आज़माएं। अगर आपको कोई समस्या मिलती है तो मैं तुरंत सुधार करता हूं;)