तो मेरे पास एक पाइथन स्क्रिप्ट है जो लगभग 350,000 डेटा ऑब्जेक्ट्स के माध्यम से जाती है, और कुछ परीक्षणों के आधार पर, इसे एक पंक्ति को अपडेट करने की आवश्यकता होती है जो उन वस्तुओं में से प्रत्येक को MySQl डीबी में दर्शाती है। मैं pymysql का भी उपयोग कर रहा हूं क्योंकि मुझे इसके साथ कम से कम परेशानी हुई है, खासकर जब बड़े चयन प्रश्नों पर भेजना (where column IN (....)
खंड के साथ विवरण चुनें जिसमें 100,000+ मूल्य हो सकते हैं)।PyMySQL एक क्वेरी में अलग-अलग अपडेट?
चूंकि प्रत्येक पंक्ति के लिए प्रत्येक अद्यतन अलग हो सकता है, प्रत्येक अद्यतन कथन अलग है। उदाहरण के लिए, एक पंक्ति के लिए हम first_name
अपडेट करना चाहेंगे लेकिन एक और पंक्ति के लिए हम first_name
को छूना चाहते हैं और हम last_name
अपडेट करना चाहते हैं।
यही कारण है कि मैं cursor.executemany()
विधि का उपयोग नहीं करना चाहता जो एक सामान्य अद्यतन कथन में लेता है और फिर आप इसे मानते हैं, हालांकि मैंने प्रत्येक मान अलग किया है, इसलिए एक सामान्य अद्यतन कथन वास्तव में नहीं है मेरे मामले के लिए काम करते हैं। मैं तार पर व्यक्तिगत रूप से 350,000 से अधिक अद्यतन विवरण भी नहीं भेजना चाहता हूं। क्या वैसे भी मैं अपने सभी अपडेट स्टेटमेंट्स को एक साथ पैकेज कर सकता हूं और उन्हें एक बार भेज सकता हूं?
मैंने उन्हें सभी एक प्रश्न में रखने और cursor.execute()
विधि का उपयोग करने की कोशिश की लेकिन यह सभी पंक्तियों को अपडेट नहीं कर रहा है।
कितने अलग-अलग प्रकार के अपडेट हैं? यानी आप लाखों मूल्यों के उन तीसरे मूल्यों के साथ कितनी अलग तालिकाओं को अपडेट कर रहे हैं? और उन तालिकाओं पर कितने अलग कॉलम? यानी क्या यह कुछ अलग अद्यतन बयान है? –
क्या 'एक प्रश्न' या 'एक तिहाई मिलियन' प्रश्नों के अलावा अन्य उपयोगी विकल्प हैं? डाटाबेस में डेटा को 'वर्क टेबल' में लोड किया गया था और उससे उसमें हेरफेर करने के बारे में क्या होगा? डेटाबेस में डेटा के साथ खेलने जैसे डाटाबेस? –
@RyanVincent वे सभी एक ही टेबल को अपडेट करते हैं हालांकि तालिका में 12 कॉलम हैं और प्रत्येक अपडेट स्टेटमेंट कॉलम के किसी भी अलग संयोजन को 1 कॉलम से 10 कॉलम तक अपडेट कर सकता है। –