PostgreSQL की नवीनतम और सबसे बड़ी रिलीज़, v11, इस सप्ताह के अंत में आने वाली है! यहां इस संस्करण में नई सुविधाओं पर एक त्वरित नज़र है।
विभाजन सुधार
सुधारों का सबसे बड़ा सेट विभाजन समर्थन के लिए है। पोस्टग्रेज 11 सपोर्ट करता है:
- पंक्तियों को अपडेट करने से वे सभी विभाजनों में स्थानांतरित हो सकती हैं
- डिफ़ॉल्ट विभाजन
- स्वचालित अनुक्रमणिका निर्माण
- विदेशी कुंजी बाधाएं विभाजित तालिकाओं पर समर्थित हैं
- अद्वितीय अनुक्रमणिका
- विभाजनों के लिए एकत्रीकरण पुश डाउन
- हैश द्वारा समानता
- दूरस्थ सर्वर पर बच्चों का विभाजन (postgres_fdw) अपडेट किया जा सकता है
- INSERT..ON CONFLICT विभाजित तालिकाओं पर समर्थित है
- अधिक कुशल क्वेरी योजनाएँ और तेज़ क्वेरी निष्पादन
इन सुधारों के बारे में यहाँ और पढ़ें।
अधिक समानांतरवाद
समांतरता में वृद्धि से संबंधित बोर्ड भर में सुधारों का एक समूह है। "CREATE..AS SELECT", btree अनुक्रमणिका निर्माण और इन परिवर्तनों से अधिक लाभ के साथ जुड़ता है, संघ बनाता है, तालिकाओं और विचारों का निर्माण करता है।
यहां पोस्टग्रेज 11 में अनुक्रमणिका निर्माण प्रदर्शन सुधारों पर एक लेख दिया गया है।
JIT अनुपालन क्वेरीज़
हालांकि 11 में डिफ़ॉल्ट रूप से अक्षम, एलएलवीएम-आधारित जेआईटी प्रश्नों का संकलन अब पोस्टग्रेज में बनाया गया है। सर्वर अब LLVM का उपयोग करके कुछ प्रश्नों (जिनके निष्पादन अनुमान एक सीमा से अधिक हैं) को संकलित करना चुन सकता है, जिसके परिणामस्वरूप तेजी से प्रश्न होंगे। यह संकलन एप्लिकेशन के लिए स्वचालित और पारदर्शी है।
यहाँ कुछ संख्याएँ हैं।
कवरिंग इंडेक्स
अन्य आरडीबीएमएस में उपलब्ध कवरिंग इंडेक्स, लेकिन पोस्टग्रेएसक्यूएल नहीं, अब जोड़ा गया है। इसके साथ, इस तरह का एक इंडेक्स (नया सिंटैक्स) होना संभव है:
CREATE INDEX empid_idx ON employees(empid) INCLUDE (empname);
इस तरह के एक इंडेक्स में इंडेक्स में ही अतिरिक्त एट्रीब्यूट्स (यहां "एम्पनाम") शामिल होते हैं, और यह प्रश्नों को संतुष्ट करना संभव बनाता है जैसे:
SELECT empname FROM employees WHERE empid BETWEEN 1000 and 2000;
पूरी तरह से केवल-इंडेक्स स्कैन का उपयोग करना और ढेर को बिल्कुल भी नहीं छूना।
यहां इंडेक्स को कवर करने के बारे में और पढ़ें।
संग्रहीत कार्यविधियाँ
संग्रहीत कार्यविधियाँ अभी तक PostgreSQL के अन्य RDBMSes को पकड़ने का एक और उदाहरण हैं। वे निश्चित रूप से संग्रहीत कार्यों के समान हैं जो PostgreSQL ने लंबे समय से समर्थन किया है, लेकिन केवल प्रक्रियाओं का उपयोग करने वाली एक बड़ी चीज लेनदेन नियंत्रण है। आप स्टोर की गई प्रक्रियाओं से लेन-देन कर सकते हैं और रोलबैक कर सकते हैं।
CREATE PROCEDUREदस्तावेज़ीकरण पर एक नज़र डालें।
टेबल्स में कॉलम जोड़ना
DEFAULT मान के साथ एक नया NOT NULL कॉलम जोड़ने के लिए तालिका को बदलना PostgreSQL में थोड़ा दर्द था, क्योंकि इससे सर्वर पूरी तालिका को फिर से लिखता था। v11 के साथ अब इस तरह के DDL स्टेटमेंट होना संभव है:
ALTER TABLE users ADD COLUMN foo_factor integer NOT NULL DEFAULT 42;
निरंतर समय में निष्पादित करें। इसे निष्पादित करते समय पंक्तियों को छुआ नहीं जाता है, और इसके बजाय "आलसी" अपडेट किया जाता है।
इस सुविधा के बारे में यहाँ और पढ़ें।
SHA फंक्शन्स
और अंत में, आप में से जो केवल SHA कार्यों के लिए pgcrypto का उपयोग करते हैं, वे अब PostgreSQL 11 में बिल्ट-इन का उपयोग करने के लिए स्विच कर सकते हैं:
bench=# \df pg_catalog.sha*
List of functions
Schema | Name | Result data type | Argument data types | Type
------------+--------+------------------+---------------------+------
pg_catalog | sha224 | bytea | bytea | func
pg_catalog | sha256 | bytea | bytea | func
pg_catalog | sha384 | bytea | bytea | func
pg_catalog | sha512 | bytea | bytea | func
(4 rows)
bench=# SELECT sha256('hello');
sha256
--------------------------------------------------------------------
\x2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
(1 row)