2009-09-02 8 views
31

मैं खंडित PostgreSQL तालिकाओं (तालिका प्रति दिन) में बड़ी मात्रा में डेटा (लॉग) स्टोर करने जा रहा हूं। मैं अपनी डिस्क पर कुछ जगह बचाने के लिए उनमें से कुछ को संपीड़ित करना चाहता हूं, लेकिन मैं उन्हें सामान्य तरीके से पूछने की क्षमता खोना नहीं चाहता हूं।क्या PostgreSQL टेबल (टुकड़े) के पारदर्शी संपीड़न का समर्थन करता है?

क्या PostgreSQL ऐसे पारदर्शी संपीड़न का समर्थन करता है और मैं इसके बारे में अधिक विस्तार से कहां पढ़ सकता हूं? मुझे लगता है कि ऐसी सुविधा के लिए कुछ प्रसिद्ध जादू नाम होना चाहिए।

उत्तर

37

हां, पोस्टग्रेएसक्यूएल एक निश्चित आकार से ऊपर जाने पर यह स्वचालित रूप से आपके लिए ऐसा करेगा। हालांकि प्रत्येक व्यक्तिगत डेटा मान पर संपीड़न लागू होता है - पूर्ण तालिका स्तर पर नहीं। मतलब यह है कि यदि आपके पास एक अरब पंक्तियां हैं जो बहुत संकीर्ण हैं, तो वे संपीड़ित नहीं होंगे। या यदि आपके पास बहुत से कॉलम हैं जिनमें प्रत्येक में केवल एक छोटा सा मूल्य है, तो वे संपीड़ित नहीं होंगे। manual में इस योजना के बारे में विवरण।

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

8

शायद आपके मन में जो कुछ भी है, लेकिन अभी भी उपयोगी जानकारी - ठीक मैनुअल के Chapter 53. Database Physical StorageTOAST अनुभाग आगे ध्यान देता है।

1

विशेष रूप से विशेष रूप से जो आपने पूछा है, लेकिन बड़े डेटा सेट के साथ कुछ मदद की बात यह नहीं है कि PostgreSQL तालिका विरासत का समर्थन करता है, जिससे आप अपने डेटा को विभाजित कर सकते हैं, उदाहरण के लिए, तिथि सीमाओं के अनुसार। या कुछ अन्य तर्क।

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