PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

PostgreSQL 11 में नया क्या है?

पोस्टग्रेएसक्यूएल 11 को 10 अक्टूबर, 2018 को जारी किया गया था, और यह तेजी से लोकप्रिय ओपन सोर्स डेटाबेस की 23वीं वर्षगांठ को चिह्नित करते हुए शेड्यूल पर जारी किया गया था।

जबकि परिवर्तनों की एक पूरी सूची सामान्य रिलीज़ नोट्स में उपलब्ध है, यह संशोधित फ़ीचर मैट्रिक्स पृष्ठ की जाँच करने के लायक है, जो आधिकारिक दस्तावेज़ीकरण की तरह ही अपने पहले संस्करण के बाद से एक बदलाव प्राप्त हुआ है, जो विवरणों में गोता लगाने से पहले परिवर्तनों को देखना आसान बनाता है। ।

उदाहरण के लिए रिलीज़ नोट्स पृष्ठ पर, "SCAM प्रमाणीकरण के लिए चैनल बाइंडिंग" को स्रोत कोड के अंतर्गत दफनाया जाता है जबकि मैट्रिक्स में सुरक्षा अनुभाग के अंतर्गत होता है। जिज्ञासु के लिए यहाँ इंटरफ़ेस का एक स्क्रीनशॉट है:

PostgreSQL फ़ीचर मैट्रिक्स

इसके अतिरिक्त, ऊपर लिंक किया गया बुकार्डो पोस्टग्रेज रिलीज नोट्स पेज अपने तरीके से आसान है, जिससे सभी संस्करणों में एक कीवर्ड खोजना आसान हो जाता है।

नया क्या है? सचमुच सैकड़ों परिवर्तनों के साथ, मैं फ़ीचर मैट्रिक्स में सूचीबद्ध अंतरों को देखूंगा।

बी-पेड़ों के लिए कवरिंग इंडेक्स (शामिल करें)

CREATE INDEX को INCLUDE क्लॉज मिला जो इंडेक्स को गैर-कुंजी कॉलम को शामिल करने की अनुमति देता है . लगातार समान प्रश्नों के लिए इसका उपयोग मामला, 22 नवंबर से टॉम लेन की प्रतिबद्धता में अच्छी तरह से वर्णित है, जो विकास दस्तावेज को अद्यतन करता है (जिसका अर्थ है कि वर्तमान पोस्टग्रेएसक्यूएल 11 दस्तावेज अभी तक नहीं है), इसलिए पूर्ण पाठ के लिए अनुभाग 11.9 देखें। इंडेक्स-ओनली स्कैन और कवरिंग इंडेक्स डेवलपमेंट वर्जन में।

B-tree Indexes के लिए समानांतर CREATE INDEX

जैसा कि नाम में बताया गया है, यह सुविधा केवल बी-ट्री इंडेक्स के लिए लागू की गई है, और रॉबर्ट हास के कमिट लॉग से हम सीखते हैं कि भविष्य में कार्यान्वयन को परिष्कृत किया जा सकता है। जैसा कि CREATE INDEX प्रलेखन से उल्लेख किया गया है, जबकि समानांतर और समवर्ती दोनों सूचकांक निर्माण विधियाँ कई CPU का लाभ उठाती हैं, CONCURRENT के मामले में केवल पहला टेबल स्कैन समानांतर में किया जाएगा।

इस नई सुविधा से संबंधित कॉन्फ़िगरेशन पैरामीटर हैं maintenance_work_mem और रखरखाव_समानांतर_रखरखाव_कार्यकर्ता

अंत में, ALTER TABLE कमांड का उपयोग करके और parallel_workers के लिए मान निर्दिष्ट करके, प्रति टेबल समानांतर श्रमिकों की संख्या निर्धारित की जा सकती है ।

आज श्वेतपत्र डाउनलोड करें क्लस्टरकंट्रोल के साथ पोस्टग्रेएसक्यूएल प्रबंधन और स्वचालन इस बारे में जानें कि पोस्टग्रेएसक्यूएल को तैनात करने, मॉनिटर करने, प्रबंधित करने और स्केल करने के लिए आपको क्या जानना चाहिए। श्वेतपत्र डाउनलोड करें

जस्ट-इन-टाइम (JIT) कंपाइलेशन फॉर एक्सप्रेशन इवैल्यूएशन एंड टपल डिफॉर्मिंग

दस्तावेज़ीकरण में अपने स्वयं के जेआईटी अध्याय के साथ, यह नई सुविधा पोस्टग्रेएसक्यूएल पर एलएलवीएम समर्थन के साथ संकलित होने पर निर्भर करती है (सत्यापन के लिए pg_config का उपयोग करें)।

PostgreSQL में JIT का विषय काफी जटिल है (दस्तावेज़ीकरण में JIT README संदर्भ देखें) एक समर्पित ब्लॉग की आवश्यकता के लिए, इस बीच, JIT पर साइटसडाटा ब्लॉग विषय में गहराई से गोता लगाने के इच्छुक लोगों के लिए बहुत अच्छा पढ़ा जाता है।

समानांतर हैश जॉइन

समानांतर प्रश्नों में यह प्रदर्शन सुधार एक साझा हैश तालिका को जोड़ने का परिणाम है, जैसा कि थॉमस मुनरो ने PostgreSQL ब्लॉग के लिए अपने समानांतर हैश में बताया है, हैश तालिका को विभाजित करने से बचता है बशर्ते कि यह work_mem में फिट हो। , जो अब तक PostgreSQL के लिए विभाजन-प्रथम एल्गोरिथम की तुलना में एक बेहतर समाधान प्रतीत होता है। वही ब्लॉग पोस्टग्रेएसक्यूएल आर्किटेक्चर बाधाओं का वर्णन करता है जिसे लेखक को हैश जॉइन में समानांतरता जोड़ने के लिए अपनी खोज में दूर करना पड़ा था जो इस सुविधा को लागू करने के लिए आवश्यक कार्य की जटिलता को बयां करता है।

डिफ़ॉल्ट विभाजन

यह उन पंक्तियों को संग्रहीत करने के लिए सभी विभाजन को पकड़ता है जो किसी अन्य परिभाषित विभाजन से मेल नहीं खाते हैं। ऐसे मामलों में जहां एक नया विभाजन जोड़ा जाता है, डिफ़ॉल्ट विभाजन के स्कैन से बचने के लिए एक CHECK बाधा की सिफारिश की जाती है, जो तब धीमा हो सकता है जब डिफ़ॉल्ट विभाजन में बड़ी संख्या में पंक्तियाँ हों।

डिफ़ॉल्ट विभाजन व्यवहार को ALTER TABLE और CREATE TABLE के दस्तावेज़ीकरण में समझाया गया है।

हैश कुंजी द्वारा विभाजन

हैश विभाजन भी कहा जाता है, और जैसा कि प्रतिबद्ध संदेश में बताया गया है, यह सुविधा तालिकाओं को इस तरह से विभाजित करने की अनुमति देती है कि विभाजन समान पंक्तियों को धारण करेगा। यह एक मापांक प्रदान करके प्राप्त किया जाता है, जिसे अधिक सरल परिदृश्य में विभाजन की संख्या के बराबर होने की सिफारिश की जाती है, और शेष प्रत्येक विभाजन के लिए अलग होना चाहिए।

अधिक विवरण और उदाहरण के लिए तालिका दस्तावेज़ीकरण पृष्ठ बनाएं देखें।

विभाजित तालिकाओं पर प्राथमिक कुंजी, विदेशी कुंजी, अनुक्रमणिका और ट्रिगर के लिए समर्थन

टेबल विभाजन पहले से ही बड़ी तालिकाओं के प्रदर्शन में सुधार करने के लिए एक बड़ा कदम है, और इन सुविधाओं को जोड़ने से उन सीमाओं को संबोधित किया जाता है जो विभाजन तालिका में पोस्टग्रेएसक्यूएल 10 के बाद से होती हैं जब आधुनिक शैली "घोषणात्मक विभाजन" पेश किया गया था।

विदेशी कुंजियों को प्राथमिक कुंजियों को संदर्भित करने की अनुमति देने के लिए अल्वारो हेरेरा द्वारा काम चल रहा है, और अगले PostgreSQL प्रमुख संस्करण 12 के लिए निर्धारित है।

विभाजन कुंजी पर अद्यतन करें

जैसा कि पैच कमिट लॉग में बताया गया है, यह अपडेट पोस्टग्रेएसक्यूएल को एक त्रुटि फेंकने से रोकता है जब विभाजन कुंजी का अपडेट एक पंक्ति को अमान्य करता है, और इसके बजाय पंक्ति को एक उपयुक्त विभाजन में ले जाया जाएगा।

SCRAM प्रमाणीकरण के लिए चैनल बाइंडिंग

यह एक सुरक्षा उपाय है जिसका उद्देश्य SASL प्रमाणीकरण में बीच-बीच में होने वाले हमलों को रोकना है और लेखक के ब्लॉग में पूरी तरह से विस्तृत है। इस सुविधा के लिए न्यूनतम ओपनएसएसएल 1.0.2 की आवश्यकता है।

एसक्यूएल संग्रहित प्रक्रियाओं के लिए प्रक्रिया बनाएं और सिंटेक्स कॉल करें

PostgreSQL ने 1996 से 1.0.1 . संस्करण के साथ CREATE FUNCTION किया है हालांकि, फ़ंक्शन लेनदेन को संभाल नहीं सकते हैं। जैसा कि दस्तावेज़ीकरण में बताया गया है, CREATE PROCEDURE कमांड SQL मानक के साथ पूरी तरह से संगत नहीं है।

नोट:आने वाले ब्लॉग के लिए बने रहें जो इस सुविधा में गहराई से गोता लगाता है

निष्कर्ष

PostgreSQL 11 प्रमुख अपडेट समानांतर निष्पादन, विभाजन और जस्ट-इन-टाइम संकलन के माध्यम से प्रदर्शन में सुधार पर ध्यान केंद्रित करते हैं। संग्रहीत कार्यविधियाँ पूर्ण लेन-देन नियंत्रण की अनुमति देती हैं और इन्हें विभिन्न PL भाषाओं में लिखा जा सकता है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. फिक्स:"ऑपरेटर मौजूद नहीं है:पूर्णांक || पूर्णांक" PostgreSQL में

  2. मैं PostgreSQL में टाइमस्टैम्प को स्वचालित रूप से कैसे अपडेट करूं

  3. मैं एक नई स्थापना के बाद Postgresql में कैसे लॉगिन और प्रमाणित करूं?

  4. डायनेमिक क्वेरी फंक्शन को पोस्टग्रेज करता है

  5. PostgreSQL 8.4 में कॉलम डेटाटाइप को कैरेक्टर से न्यूमेरिक में कैसे बदलें?