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

मैं एक बड़ी तालिका पर दिनांक-आधारित क्वेरी प्रदर्शन को कैसे सुधारूं?

एक भौतिक दृश्य आपने जो रेखांकित किया है, उसके लिए जाने का तरीका है। पिछले महीनों के रीड-ओनली डेटा को रीफ़्रेश किए बिना क्वेरी करना काम करता है। यदि आपको उसे भी कवर करने की आवश्यकता है, तो आप वर्तमान माह को विशेष-केस करना चाह सकते हैं।

अंतर्निहित क्वेरी अभी भी एक अनुक्रमणिका से लाभान्वित हो सकती है, और आप दो दिशाएँ अपना सकते हैं:

सबसे पहले, आंशिक अनुक्रमणिका जैसे अब आप अपने परिदृश्य में ज्यादा नहीं खरीदेंगे, इसके लायक नहीं है। अगर आप कई महीनों का डेटा इकट्ठा करते हैं और ज़्यादातर महीने के हिसाब से क्वेरी करते हैं (और महीने के हिसाब से पंक्तियाँ जोड़ते/छोड़ते हैं) टेबल विभाजन एक विचार हो सकता है, तो आपके पास आपकी अनुक्रमणिका स्वचालित रूप से भी विभाजित हो जाती है। मैं इसके लिए पोस्टग्रेज 11 या आगामी पोस्टग्रेज 12 पर भी विचार करूंगा।)

अगर आपकी पंक्तियां चौड़ी हैं , एक इंडेक्स बनाएं जो इंडेक्स-ओनली स्कैन की अनुमति देता है . पसंद:

CREATE INDEX reportimpression_covering_idx ON reportimpression(datelocal, views, gender);

संबंधित:

या INCLUDE पोस्टग्रेज 11 या बाद के संस्करण में अतिरिक्त कॉलम:

CREATE INDEX reportimpression_covering_idx ON reportimpression(datelocal) INCLUDE (views, gender);

अन्य , यदि आपकी पंक्तियों को datelocal . द्वारा भौतिक रूप से क्रमबद्ध किया गया है , एक BRIN अनुक्रमणिका पर विचार करें . यह आपके मामले के लिए बेहद छोटा और शायद बी-पेड़ इंडेक्स जितना तेज़ है। (लेकिन इतना छोटा होने के कारण यह अधिक आसानी से कैश्ड रहेगा और अन्य डेटा को उतना बाहर नहीं धकेलेगा।)

CREATE INDEX reportimpression_brin_idx ON reportimpression USING BRIN (datelocal);

आपकी रुचि CLUSTER में हो सकती है या pg_repack तालिका पंक्तियों को भौतिक रूप से क्रमबद्ध करने के लिए। pg_repack टेबल पर अनन्य ताले के बिना और यहां तक ​​​​कि बीट्री इंडेक्स के बिना भी कर सकते हैं (CLUSTER द्वारा आवश्यक) ) लेकिन यह एक अतिरिक्त मॉड्यूल है जिसे पोस्टग्रेज के मानक वितरण के साथ शिप नहीं किया गया है।

संबंधित:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पंक्तियों की प्रत्येक x मात्रा में अधिकतम और न्यूनतम मान चुनें-postgresql

  2. लेफ्ट जॉइन से अपडेट पोस्टग्रेज करें

  3. विंडोज में PostgreSQL कंप्रेस्ड आर्काइव लॉग्स

  4. PostgreSQL क्वेरी कैसे लॉग करें?

  5. एप्लिकेशन, कनेक्शन पूलिंग और पोस्टग्रेएसक्यूएल के लिए एक सुरक्षा प्रणाली - एलडीएपी के लिए मामला