मैं सोच रहा हूं कि PostgreSQL से बड़ी संख्या में पंक्तियों को हटाने के लिए सबसे कुशल तरीका क्या होगा, यह प्रक्रिया हर दिन एक आवर्ती कार्य का एक हिस्सा होगी जो डेटा आयात (एक प्रविष्टि + विलोपन का डेल्टा) को एक तालिका में बदल देती है। हटाने के लिए हजारों, संभवतः लाखों पंक्तियाँ हो सकती हैं।
मेरे पास प्राथमिक कुंजी की एक फ़ाइल है, प्रति पंक्ति एक। मैं जिन दो विकल्पों के बारे में सोच रहा था, वे नीचे की तर्ज पर थे, लेकिन मैं एक सूचित निर्णय लेने के लिए पोस्टग्रेसीक्यूएल के आंतरिक के बारे में पर्याप्त नहीं जानता / समझता हूं जो सबसे अच्छा होगा।
DELETE
फ़ाइल में प्रत्येक पंक्ति के लिए एक क्वेरी निष्पादित करें ,WHERE
प्राथमिक कुंजी पर एक साधारण (याn
किसीIN()
खंड का उपयोग करने वाले बैचों में समूह को हटाएं )COPY
कमांड का उपयोग करके एक अस्थायी तालिका में प्राथमिक कुंजियों को आयात करें और फिर एक सम्मिलित का उपयोग करके मुख्य तालिका से हटा दें
किसी भी सुझाव बहुत सराहना की जाएगी!