sql - Slow simple update query on PostgreSQL database with 3 million rows -
मैं एक साधारण UPDATE तालिका SET column1 = 0
की मेज पर ~ 3 मिलियन पंक्तियों के साथ कोशिश कर रहा हूं पोस्टगेस 8.4 पर लेकिन यह हमेशा के लिए खत्म हो रहा है। यह 10 मिनट से अधिक के लिए चल रहा है अब मेरे आखिरी प्रयास में।
इससे पहले, मैंने उस मेज पर एक वैक्यूम चलाने और कमांड को चलाने की कोशिश की और मैंने कुछ अनुक्रमित बनाने का भी प्रयास किया (हालांकि मुझे संदेह है कि इस मामले में कोई फर्क पड़ेगा) लेकिन कोई नहीं मदद करने लगता है।
कोई अन्य विचार?
धन्यवाद, रिकार्डो
अपडेट:
यह टेबल स्ट्रक्चर:
बनाओ टेबल मेरीटेबल (आईडी बड़ी सीरियल नल, शीर्षक पाठ, विवरण पाठ, लिंक पाठ, "टाइप" कैरेक्टर बदलती है (255), सामान्यफ्रेक असली, सामान्यवास्तव असली, लेखक_आईडी बिनीट, Status_id bigint, CONSTRAINT resources_pkey प्राथमिक कुंजी (आईडी), कॉन्ट्रैक्ट author_pkey विदेशी कुंजी (author_id) संदर्भ प्रयोक्ता (आईडी) अद्यतन को हटाने पर कोई कार्रवाई नहीं हटाए गए कोई कार्रवाई नहीं, कॉन्ट्रैक्ट c_unique_status_id UNIQUE (status_id));
मैं को चलाने के लिए कोशिश कर रहा हूँ myTable SET generalFreq = 0;
इस विषय पर एक नज़र डालें:
सबसे पहले एक बेहतर फ़िलफ़ैक्टर के साथ शुरू करें, एक पुनरावृत्ति को पुन: लिखने के लिए मजबूर करें और अपने UPDATE-query के बाद हॉट-अपडेट की जांच करें।
<पूर्व> SELECT n_tup_hot_upd, * से pg_stat_user_tables WHERE relname = 'myTable';
जब आपके पास अद्यतन करने के लिए बहुत अधिक रिकॉर्ड होते हैं तो हॉट अपडेट बहुत तेज़ होते हैं एचओटी के बारे में अधिक जानकारी इस लेख में पायी जा सकती है:
पी एस आपको संस्करण 8.3 या बेहतर चाहिए।
Comments
Post a Comment