- शुद्ध Go में लिखा गया MySQL-संगत डेटाबेस इंजन
- यह एक data source-agnostic SQL इंजन है, जो MySQL syntax और protocol का उपयोग करके दिए गए data source पर queries चलाता है
- इसमें एक सरल in-memory डेटाबेस implementation शामिल है, और आप अपना backend implement करके मनचाहे data source को query कर सकते हैं
संगतता
- कुछ विशेष सीमाओं को छोड़कर, go-mysql-server को MySQL के विकल्प के रूप में इस्तेमाल किया जा सकता है
- MySQL पर काम करने वाली client libraries, tools, queries, SQL syntax, SQL functions आदि go-mysql-server पर भी काम करने चाहिए
- यदि feature differences मिलें, तो issue रिपोर्ट करने का अनुरोध है
प्रोजेक्ट का दायरा
- data source को query करने के लिए SQL server और engine
- testing में उपयोग के लिए उपयुक्त in-memory डेटाबेस backend implementation
- अपने data source को query करने के लिए नए backend implementation में इस्तेमाल की जा सकने वाली interfaces
- कुछ सावधानियों को ध्यान में रखकर और पूर्ण डेटाबेस implementation का उपयोग करके यह MySQL डेटाबेस का विकल्प बन सकता है
go-mysql-server के मुख्य उपयोग के मामले:
- built-in
memory डेटाबेस implementation का उपयोग करके Go test environment में MySQL की जगह लेना
- कुछ interfaces implement करके किसी भी data source को SQL queries के ज़रिए एक्सेस योग्य बनाना
in-memory test server का उपयोग
- in-memory test server, tests में वास्तविक MySQL server की जगह ले सकता है
- दिए गए example code का उपयोग करके server शुरू किया जा सकता है
- server चलने के बाद, MySQL client, Go MySQL connector,
mysql shell आदि से कनेक्ट किया जा सकता है
in-memory डेटाबेस implementation की सीमाएँ
- साथ दिया गया in-memory डेटाबेस implementation testing के लिए उपयोग करने के उद्देश्य से है
- ज्ञात सीमाएँ:
- यह thread-safe नहीं है। concurrency issues से बचने के लिए DDL और DML statements को एक ही goroutine तक सीमित रखना चाहिए
- यह transactions को support नहीं करता।
START TRANSACTION, ROLLBACK, COMMIT जैसे statements काम नहीं करेंगे
- अक्षम index implementation। index lookups और joins internal tables पर full table scan करते हैं
custom backend implementation
- कुछ interfaces implement करके अपने data source को query करने वाला backend बनाया जा सकता है
- विस्तृत निर्देशों के लिए backend guide देखें
go-mysql-server से चलने वाले प्रोजेक्ट
- dolt
- gitbase (बंद किया गया)
- यदि आप go-mysql-server के साथ डेटाबेस backend बना रहे हैं, तो बताने का अनुरोध है
लाइसेंस
GN⁺ की राय
- go-mysql-server, Go में लिखा गया एक हल्का MySQL-संगत डेटाबेस इंजन है, जो test environment में MySQL की जगह लेने या अपने data source को SQL से query करने के उपयोग में काम का लगता है
- चूँकि इसका लक्ष्य MySQL compatibility है, इसलिए उम्मीद है कि इसे मौजूदा MySQL-आधारित applications में बड़े बदलाव के बिना अपनाया जा सकेगा
- हालांकि यह अभी भी एक experimental project है, और खासकर in-memory implementation केवल testing के लिए है, इसलिए production में उपयोग करते समय performance और stability के मामले में सावधानी ज़रूरी लगती है
- backend developers के लिए यह आकर्षक हो सकता है कि वे interfaces को सीधे implement करके अपनी पसंद का data source जोड़ सकते हैं। Dolt जैसे वास्तविक project examples देखना उपयोगी होगा
- इसी तरह के MySQL-संगत डेटाबेस में TiDB, CockroachDB आदि शामिल हैं। go-mysql-server का फायदा यह है कि इसमें backend को स्वतंत्र रूप से implement किया जा सकता है, लेकिन दूसरी ओर backend development की अतिरिक्त लागत भी आती है
1 टिप्पणियां
Hacker News राय