कुछ दिनों पहले SQLite 3.46 के नए संस्करण की रिलीज़ की घोषणा की गई, जो महत्वपूर्ण सुधारों की एक श्रृंखला के साथ आता है जो इस लोकप्रिय डेटाबेस की कार्यक्षमता में सुधार करता है और सबसे उल्लेखनीय परिवर्तनों में से एक है PRAGMA ऑप्टिमाइज़ में सुधार, अन्य बातों के अलावा, SQL json_pretty() फ़ंक्शन को शामिल करना, ASCII नियंत्रण वर्णों को शामिल करना।
उन लोगों के लिए जो SQLite के बारे में नहीं जानते हैं, आपको पता होना चाहिए कि यह SQL भाषा के माध्यम से सुलभ एक हल्का रिलेशनल डेटाबेस इंजन है। पारंपरिक डेटाबेस सर्वर, जैसे कि MySQL या PostgreSQL के विपरीत, इसकी ख़ासियत सामान्य क्लाइंट-सर्वर योजना को पुन: पेश करना नहीं है, बल्कि सीधे कार्यक्रमों में एकीकृत करना है।
इसकी अत्यधिक हल्कीता के लिए धन्यवाद, SQLite दुनिया में सबसे अधिक उपयोग किए जाने वाले डेटाबेस इंजनों में से एक है। इसका उपयोग कई उपभोक्ता कार्यक्रमों में किया जाता है और यह अधिकांश आधुनिक स्मार्टफोन सहित एम्बेडेड सिस्टम में भी बहुत लोकप्रिय है।
SQLite 3.46 की मुख्य नई विशेषताएं
यह नया संस्करण SQLite 3.46 का प्रस्तुत किया गया है PRAGMA ऑप्टिमाइज़ ऑपरेशन की क्षमताओं में सुधार किया गया है, इसे उपयोग में आसान बनाने के लिए कई तरीकों से, बेहतर क्वेरी प्रदर्शन के लिए डेटाबेस और सभी डेटा स्कीमा को अनुकूलित करना। अब, PRAGMA अनुकूलन स्वचालित रूप से एक अस्थायी स्कैन सीमा लागू करता है बड़े डेटाबेस पर अत्यधिक निष्पादन से बचने के लिए। सभी तालिकाओं पर अपडेट की जांच करने के लिए एक नया बिटमास्क विकल्प "PRAGMA ऑप्टिमाइज़ (0x10000)" जोड़ा गया है, और उन तालिकाओं पर स्वचालित रूप से पुनर्विश्लेषण किया जाता है जिनमें sqlite_stat1 प्रविष्टियाँ नहीं हैं।
SQLite 3.46 द्वारा प्रस्तुत एक और नई सुविधा है सुविधा में सुधार, जब से यह हुआ है strftime() SQL फ़ंक्शन के लिए विस्तारित समर्थन %G, %g, %U और %V, प्लस को शामिल करने के लिए SQL फ़ंक्शंस में 'सीलिंग' और 'फ़्लोर' संशोधक पेश किए गए हैं किसी तिथि को महीनों और/या वर्षों की पूर्णांक संख्या से आगे बढ़ाकर अस्पष्ट तिथियों को हल करने में उपयोग किए जाने वाले एल्गोरिदम को नियंत्रित करना। इसके अतिरिक्त, 'utc' और 'localtime' संशोधक अब नो-ऑप्स हैं यदि SQLite को पता है कि समय पहले से ही क्रमशः UTC या स्थानीय समय में है।
इसके अतिरिक्त, INSERT कथनों को अनुमति देने के लिए "VALUES-as-coroutine" अनुकूलन लागू किया गया है VALUES में हजारों पंक्तियों को लगभग आधे समय में पार्स और निष्पादित किया जाएगा और लगभग आधी मेमोरी का उपयोग किया जाएगा।
इसके अलावा, "SELECT count(DISTINCT col) FROM..." जैसे प्रश्नों के लिए इंडेक्स का उपयोग करने की अनुमति है भले ही सूचकांक रिकॉर्ड तालिका रिकॉर्ड से छोटे न हों। ऐसे मामलों की बेहतर पहचान जिसमें SQL फ़ंक्शन का मान होता है स्थिर है क्योंकि इसके सभी तर्क स्थिर हैं। WHERE क्लॉज पुशिंग ऑप्टिमाइज़ेशन में भी सुधार किया गया है ताकि आप उन WHERE क्लॉज को पुश कर सकें जिनमें असंबंधित सबक्वेरीज़ हैं।
की अन्य परिवर्तन वह बाहर खड़ा है:
- संख्यात्मक शाब्दिक में अंकों के बीच अंडरस्कोर वर्णों ("_") के लिए समर्थन जोड़ा गया।
- ब्लॉक इंडेंटेशन के साथ स्वरूपित अधिक पठनीय JSON आउटपुट उत्पन्न करने के लिए json_pretty() SQL फ़ंक्शन जोड़ा गया।
- पार्सर स्टैक ओवरफ्लो त्रुटि की रिपोर्ट करने के बजाय, यदि यह ओवरफ्लो हो जाता है, तो हीप से SQL पार्सर स्टैक में अतिरिक्त मेमोरी आवंटित करना।
- JSON5 स्ट्रिंग शाब्दिक में ASCII नियंत्रण वर्णों को शामिल करने की अनुमति है।
- -> और ->> ऑपरेटरों को ठीक कर दिया गया है ताकि जब दाईं ओर का ऑपरेंड एक स्ट्रिंग हो जो पूर्णांक की तरह दिखता हो, तो इसे अभी भी एक स्ट्रिंग के रूप में माना जाता है, जैसे PostgreSQL करता है।
- तालिका कॉलम के लिए डिफ़ॉल्ट मान के रूप में लंबे हेक्साडेसिमल अक्षर के उपयोग की अनुमति दें।
- संख्यात्मक अक्षरों के स्पष्ट दृश्य प्रतिनिधित्व के लिए संख्याओं में "_" विभाजक का उपयोग शुरू किया गया है (उदाहरण के लिए, 1_234_567)।
- अपर्याप्त स्टैक मेमोरी के मामले में अतिरिक्त हीप मेमोरी आवंटित करने के लिए बेहतर पार्सर स्टैक ओवरफ़्लो हैंडलिंग।
- डिफ़ॉल्ट मान अब आपको तालिका कॉलम में बड़े हेक्साडेसिमल अक्षर निर्दिष्ट करने की अनुमति देता है।
अंत में अगर तुम हो इसके बारे में अधिक जानने में रुचि रखते हैं, आप विवरण की जांच कर सकते हैं निम्नलिखित लिंक में