2011-03-16 8 views
12

हटाएं मेरे पास 9 मिलियन पंक्ति तालिका है। मुझे पता चला कि इसकी एक बड़ी राशि (लगभग 9 0%) मुक्त हो सकती है। सफाई के बाद क्या कार्रवाई की आवश्यकता है? वैक्यूम, रेनडेक्स इत्यादिबड़े पैमाने पर पोस्टग्रेज़ के बाद खाली स्थान

अग्रिम धन्यवाद।

+0

क्या PostgreSQL संस्करण? इसके अलावा, अगर यह आपकी समस्या हल करता है तो कृपया एक उत्तर स्वीकार करें। संस्करण-विशिष्ट जानकारी के लिए – intgr

उत्तर

9

भविष्य में आवेषण के लिए उस स्थान को खाली करने के लिए आप निश्चित रूप से एक वैक्यूम चलाने के लिए चाहते हैं। यदि आप डिस्क पर उस स्थान को वास्तव में पुनः प्राप्त करना चाहते हैं, तो इसे ओएस पर उपलब्ध कराएं, आपको VACUUM FULL चलाने की आवश्यकता होगी। ध्यान रखें कि VACUUM एक साथ चल सकता है, लेकिन वैक्यूम पूर्ण को तालिका पर एक विशेष लॉक की आवश्यकता होती है।

आप भी REINDEX करना चाहते हैं, क्योंकि सूचकांक VACUUM चलने के बाद भी फूला हुआ रहेगा। यदि संभव हो, तो ऐसा करने का एक तेज़ तरीका इंडेक्स को छोड़ना और स्क्रैच से इसे फिर से बनाना है।

आप भी विश्लेषण करना चाहते हैं, जिसे आप केवल वाक्यूम के साथ जोड़ सकते हैं।

अधिक जानकारी के लिए documentation देखें।

0

मैं पोस्टग्रेज़ की दुनिया के लिए अपेक्षाकृत नया हूं, लेकिन मुझे लगता है कि वैक्यूम विश्लेषण की सिफारिश की जाती है। मुझे लगता है कि एक उप-विकल्प भी है जो बस अंतरिक्ष को मुक्त करता है। बैच आवेषण या हटाए जाने पर मुझे रीइन्डेक्स उपयोगी भी मिला। हां, मैं समान पंक्तियों वाली तालिकाओं के साथ काम कर रहा हूं, और गति वृद्धि बहुत ध्यान देने योग्य है (उबंटू, कोर 2 क्वाड)

27

यदि आप फ़ाइल सिस्टम पर स्थान खाली करना चाहते हैं, या तो वाक्यूम पूर्ण या क्लस्टर आपको मदद कर सकते हैं। यह सुनिश्चित करने के लिए कि योजनाकार के पास अद्यतित आंकड़े हैं, आप इनके बाद विश्लेषण भी करना चाहेंगे। आपकी प्रक्रिया पूरी तरह से इस प्रक्रिया के दौरान बंद हो जाएगी (इस तालिका पर पढ़ता है और लिखता है), तो शायद आप अपनी एप्लिकेशन को अवधि के लिए ऑफ़लाइन लेना चाहते हैं।

PostgreSQL 8.2 और इससे पहले, वाक्यूम पूर्ण शायद आपकी सबसे अच्छी शर्त है।

पोस्टग्रेएसक्यूएल 8.3 और 8.4 में, CLUSTER कमांड में काफी सुधार हुआ था, इसलिए वैक्यूम पूर्ण की सिफारिश नहीं की जाती है - यह धीमा है और यह आपकी अनुक्रमणिका को मिटा देगा। क्लस्टर स्क्रैच से और ब्लोट के बिना इंडेक्स को फिर से बना देगा। मेरे अनुभव में यह आमतौर पर बहुत तेज है। क्लस्टर एक इंडेक्स का उपयोग करके पूरी भौतिक तालिका को अतिरिक्त रूप से सॉर्ट करेगा, इसलिए आपको एक इंडेक्स चुनना होगा। यदि आप नहीं जानते हैं, तो प्राथमिक कुंजी ठीक काम करेगी।

पोस्टग्रेएसक्यूएल 9.0 में, वैक्यूम पूर्ण को CLUSTER जैसे काम में बदल दिया गया था, इसलिए दोनों अच्छे हैं।

भविष्यवाणियां करना मुश्किल है, लेकिन कमोडिटी हार्डवेयर के साथ उचित ढंग से ट्यून किए गए सर्वर पर, 9 मिलियन पंक्तियों में 20 मिनट से अधिक समय नहीं लगना चाहिए।

+2

+1 –

3

हाय इसे और अधिक की जरूरत रिकॉर्ड के 10% के साथ एक अस्थायी तालिका बनाने के लिए इष्टतम मत करो। फिर मूल तालिका छोड़ें और अस्थायी रूप से अस्थायी नाम बदलें ...

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