2013-05-23 13 views
7

मुझे एसक्यूएल (नो हाइबरनेट/जेडीबीसी) के माध्यम से तालिका पर ~ 6k अद्यतन क्वेरी निष्पादित करना होगा। क्वेरी की तरहमाइस्क्ल थोक अद्यतन

अद्यतन कुछ है some_id = 'VALUE1' जहां आईडी = 'मान 2'

यह बहुत इन सभी प्रश्नों पर अमल करने समय लगता है एक सेट। प्रदर्शन में सुधार करने का कोई तरीका है?

उत्तर

26

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

कैसे तेजी से इस प्रत्यक्ष अद्यतन के साथ तुलना में प्राप्त कर सकते हैं की तरह

INSERT INTO SomeTempTable(id, some_id) 
VALUES (1,2), (3,4), (5,6), ....... 


UPDATE A INNER JOIN SomeTempTable ON A.id = SomeTempTable.id SET A.some_id = SomeTempTable.some_id; 
+0

कुछ? – fanchyna

+0

डाटाबेस को भेजने के लिए बहुत कम कथन की आवश्यकता के कारण काफी तेज है। यदि अद्यतन एक CSV फ़ाइल पर आधारित है तो संभावित रूप से लोड डेटा इनपुट का उपयोग करके सम्मिलित किया जा सकता है .... वाक्यविन्यास। यदि अद्यतन एक अनूठी कुंजी पर आधारित है तो संभावित रूप से सब कुछ लागू कर सकते हैं INDERT कथन में ऑन डिप्लिकेट कुंजी अपडेट ... वाक्यविन्यास। – Kickstart

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