भौतिक दृश्य आपको जटिल प्रश्नों के परिणामों को भौतिक रूप से संग्रहीत करने और उन्हें समय-समय पर अपडेट करने की अनुमति देते हैं। इसलिए वे उन मामलों में उपयोगी होते हैं जहां आपको रिपोर्टिंग और व्यावसायिक खुफिया जानकारी के लिए त्वरित डेटा एक्सेस की आवश्यकता होती है। यहाँ PostgreSQL में भौतिक दृश्य बनाने का तरीका बताया गया है।
PostgreSQL व्यू बनाम मैटेरियलाइज्ड व्यू
भौतिक दृश्य पोस्टग्रेएसक्यूएल विचारों के समान हैं जो आपको बाद में कॉल करने के लिए एसक्यूएल प्रश्नों को स्टोर करने की अनुमति देते हैं। हालाँकि, PostgreSQL दृश्य आपको केवल SQL क्वेरी को संग्रहीत करने की अनुमति देता है, न कि इसके परिणाम को। भौतिक दृश्य आपको क्वेरी परिणाम को भौतिक रूप से संग्रहीत करने और उन्हें समय-समय पर अपडेट करने की अनुमति देते हैं। परिणामस्वरूप, पोस्टग्रेएसक्यूएल दृश्यों की तुलना में भौतिक दृश्य अधिक तेज़ होते हैं।
बोनस पढ़ें :PostgreSQL में प्रति समूह अंतिम पंक्ति कैसे प्राप्त करें
PostgreSQL में भौतिक दृश्य कैसे बनाएं
जैसा कि नीचे दिखाया गया है, आप क्रिएट मैटेरियलाइज़्ड व्यू स्टेटमेंट का उपयोग करके PostgreSQL में भौतिक दृश्य बना सकते हैं।
CREATE MATERIALIZED VIEW view_name AS query WITH [NO] DATA;
उपरोक्त कथन में, आपको view_name . का उल्लेख करना होगा साथ ही क्वेरी जिसका परिणाम आप भौतिक दृश्य में संग्रहीत करना चाहते हैं।
अंत में, आप डेटा के साथ विकल्प भी निर्दिष्ट कर सकते हैं यदि आप इसके निर्माण के समय डेटा को दृश्य में लोड करना चाहते हैं। यदि आप बिना डेटा के उल्लेख करते हैं, तो दृश्य को अपठनीय के रूप में फ़्लैग किया जाएगा और जब तक आप उसमें डेटा लोड नहीं करते, तब तक आप दृश्य से डेटा क्वेरी नहीं कर पाएंगे।
बोनस पढ़ें :PostgreSQL क्रिएट फंक्शन
PostgreSQL मटेरियलाइज्ड व्यू रिफ्रेश
आप दिखाए गए अनुसार रीफ़्रेश मैटेरियलाइज़्ड व्यू स्टेटमेंट का उपयोग करके डेटा को भौतिक दृश्य में लोड कर सकते हैं
REFRESH MATERIALIZED VIEW view_name
भौतिक दृश्य को ताज़ा करने के लिए आप उपरोक्त कथन का भी उपयोग कर सकते हैं।
कृपया ध्यान दें, रीफ़्रेश मैटेरियलाइज़्ड व्यू स्टेटमेंट क्वेरी डेटा को लॉक कर देता है ताकि आप इसके विरुद्ध क्वेरीज़ नहीं चला सकें। आप CONCURRENTLY विकल्प का उपयोग करके इससे बच सकते हैं
REFRESH MATERIALIZED VIEW CONCURRENTLY view_name
इस मामले में, PostgreSQL एक अस्थायी दृश्य बनाता है, इसकी तुलना मूल के साथ करता है और आवश्यक सम्मिलित करता है, अपडेट करता है और हटाता है। परिणामस्वरूप, CONCURRENTLY विकल्प केवल उन भौतिक दृश्यों के लिए उपलब्ध है जिनकी एक अद्वितीय अनुक्रमणिका है।
भौतिकीकृत दृश्य को समय-समय पर स्वतः ताज़ा करने के लिए, आप एक स्वचालित स्क्रिप्ट के माध्यम से ताज़ा सामग्री दृश्य चला सकते हैं।
बोनस पढ़ें :PostgreSQL स्कीमा बनाएं
भौतिक दृश्य निकालें
आप DROP MATERIALIZED VIEW स्टेटमेंट का उपयोग करके भौतिक विचारों को हटा सकते हैं।
DROP MATERIALIZED VIEW view_name
भौतिकीकृत दृश्य उदाहरण
आइए कुछ भौतिक दृश्य उदाहरण देखें।
यहाँ sample_view . नामक एक भौतिक दृश्य बनाने की क्वेरी दी गई है
postgres=# create materialized view sample_view as select * from sales with no data;
उपरोक्त प्रश्न में हमने कोई डेटा विकल्प के साथ उल्लेख किया है, इसलिए दृश्य में कोई डेटा नहीं होगा और जब हम इसे क्वेरी करने का प्रयास करेंगे तो एक त्रुटि देगा।
postgres=# select * from sample_view; ERROR: materialized view "sample_view" has not been populated HINT: Use the REFRESH MATERIALIZED VIEW command.
अब हम इसमें डेटा लोड करने के लिए दृश्य को ताज़ा करेंगे और फिर उपरोक्त क्वेरी को हमारे विचार के विरुद्ध चलाएंगे।
postgres=# refresh materialized view sample_view; REFRESH MATERIALIZED VIEW postgres=# select * from sample_view; order_date | sale ------------+------ 2020-04-01 | 210 2020-04-02 | 125 2020-04-03 | 150 2020-04-04 | 230 2020-04-05 | 200 2020-04-10 | 220 2020-04-06 | 250 2020-04-07 | 215 2020-04-08 | 300 2020-04-09 | 250
जैसा कि आप ऊपर देख सकते हैं, जब हम अपनी क्वेरी फिर से चलाते हैं, तो हमें परिणाम मिलता है।
उम्मीद है, अब आप आसानी से अपने डेटाबेस के लिए भौतिक दृश्य बना सकते हैं।
Ubiq मिनटों में डेटा की कल्पना करना और रीयल-टाइम डैशबोर्ड में मॉनिटर करना आसान बनाता है। इसे आज ही आजमाएं!