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

पोस्टग्रेएसक्यूएल भौतिकीकृत दृश्य

भौतिक दृश्य आपको जटिल प्रश्नों के परिणामों को भौतिक रूप से संग्रहीत करने और उन्हें समय-समय पर अपडेट करने की अनुमति देते हैं। इसलिए वे उन मामलों में उपयोगी होते हैं जहां आपको रिपोर्टिंग और व्यावसायिक खुफिया जानकारी के लिए त्वरित डेटा एक्सेस की आवश्यकता होती है। यहाँ 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 मिनटों में डेटा की कल्पना करना और रीयल-टाइम डैशबोर्ड में मॉनिटर करना आसान बनाता है। इसे आज ही आजमाएं!

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ऑटो-प्रतिबद्ध मोड में बड़ी वस्तुओं का उपयोग नहीं किया जा सकता है

  2. अवैध निर्देश:4 Django चलाते समय

  3. Django और postgresql स्कीमा

  4. PostgreSQL में Exp () फ़ंक्शन कैसे काम करता है

  5. तारों को संग्रहित करने के लिए डेटा प्रकार टेक्स्ट का उपयोग करने का कोई डाउनसाइड्स?