2015-06-23 9 views
12

पर पूर्ण वैक्यूम के बाद रीइंडेक्स की आवश्यकता है, मैं पोस्टग्रेस 9.4 का उपयोग कर रहा हूं।क्या मुझे पोस्टग्रेस 9.4

मैं बस खाली वैक्यूम भाग गया। मैंने वैक्यूम और वैक्यूम के बीच मतभेदों के बारे में पढ़ा और मुझे बहुत कुछ माना जाता है अगर मुझे वैक्यूम या वैक्यूम भरा जाना चाहिए। जहां तक ​​मैं कह सकता हूं, मुझे वैक्यूम पूर्ण होना चाहिए और मेरा डीबी आकार 48 जीबी से 24 जीबी तक नीचे आ गया।

क्या वैक्यूम पूर्ण होने के बाद पुराने इंडेक्स अप्रचलित हो गए होंगे और क्या मुझे रीइंडेक्स चलाने की आवश्यकता है?

मैंने "वैक्यूम पूर्ण वर्बोज विश्लेषण" चलाया, इसलिए विश्लेषण वैक्यूम पूर्ण के साथ किया जाता है।

मैंने पोस्टग्रेस> 9.0 के लिए कई स्थानों पर पढ़ा है, मुझे वैक्यूम पूर्ण होने के बाद रीइंडेक्स की आवश्यकता नहीं है, लेकिन मैं यह सुनिश्चित करना चाहता हूं कि यह मामला है।

+0

चूंकि आप पहले से ही 'विश्लेषण' चला चुके हैं, इसलिए पुन: अनुक्रमण आवश्यक नहीं होगा क्योंकि यह स्वयं आंकड़े एकत्र करता है। अधिक जानकारी के लिए दस्तावेज http://www.postgresql.org/docs/8.4/static/sql-analyze.html देखें। – Rahul

उत्तर

22

एक REINDEX तुरंत VACUUM FULL एक के बाद बेकार क्योंकि VACUUM FULL ही अनुक्रमित पुनर्निर्माण है।

यह Recovering Disk Space में 9.4 दस्तावेज में उल्लेख किया गया है:

... अतिरिक्त डिस्क स्थान यह पर है को पुनः प्राप्त करने के लिए, आप वैक्यूम पूर्ण, या वैकल्पिक रूप क्लस्टर या टेबल से एक का उपयोग करने की आवश्यकता होगी ALTER तालिका के संस्करणों को फिर से लिखना। ये आदेश तालिका की एक पूरी नई प्रतिलिपि को फिर से लिखते हैं और के लिए नई अनुक्रमणिका बनाते हैं।

आप सही हैं कि संस्करण 9.0 से पहले यह मामला नहीं था, जिसमें VACUUM FULL अलग-अलग थे।

संस्करण 8.4 तक, VACUUM के लिए संदर्भ दस्तावेज़ पुन: अनुक्रमणिका की जरूरत का उल्लेख किया:

पूर्ण विकल्प अनुक्रमित हटना नहीं करता है; एक आवधिक REINDEX अभी भी अनुशंसित है। वास्तव में, यह सभी इंडेक्स, VACUUM पूर्ण करने के लिए अक्सर तेज़ होता है, और इंडेक्स को फिर से बना देता है।

लेकिन यह चेतावनी अब अप्रचलित है।

संबंधित मुद्दे