2012-06-12 13 views
8

मैं अपने टेबल पर इस चलाना चाहते हैं:बड़ी तालिका में कॉलम के डेटा प्रकार को बदलना। प्रदर्शन के मुद्दों

ALTER TABLE table_name MODIFY col_name VARCHAR(255) 

लेकिन मेरी मेज है विशाल है, यह 65m से भी अधिक है (65 लाख) पंक्तियाँ। अब जब मैं निष्पादित करता हूं, तो इस आदेश को निष्पादित करने में लगभग 50 मिनट लगते हैं। तालिका बदलने के लिए कोई बेहतर तरीका?

+4

नहीं उपयोग करते हैं, यह धीमी गति से हो रहा है करने के लिए। एक वैकल्पिक कथन एक बार कार्रवाई है। इसे प्रतीक्षा करें और उम्मीद है कि आपको इसे फिर से करने की आवश्यकता नहीं है। –

+3

विशाल टेबल? नहीं। बहुत बड़ा? हाँ। –

उत्तर

3

ठीक है, आप

ALTER TABLE table_name CHANGE col_name new_name VARCHAR(255) 

जरूरत है लेकिन, आप ठीक कह रहे हैं, यह परिवर्तन करने के लिए कुछ समय लगता है। MySQL में तालिका को बदलने के लिए वास्तव में कोई तेज़ तरीका नहीं है।

क्या आपकी चिंता बदलाव के दौरान डाउनटाइम है? यदि ऐसा है, तो यहां एक संभावित दृष्टिकोण है: तालिका को एक नए पर कॉपी करें, फिर प्रतिलिपि पर कॉलम नाम बदलें, फिर प्रतिलिपि का नाम बदलें।

आपने शायद यह पता लगाया है कि नियमित रूप से उत्पादन प्रणाली में तालिकाओं में कॉलम नाम बदलना एक अच्छा विचार नहीं है।

+0

हां। मैं 50mins के डाउनटाइम का जोखिम नहीं उठा सकता, क्योंकि इस दौरान सभी पंक्तियों को बंद कर दिया जाएगा जो इस तालिका पर अन्य क्रियाओं (सीआरयूडी) को रोक देगा। – Kiran

+0

उह। ओह। इसका मतलब है, यदि आप तालिका की प्रतिलिपि बनाते हैं, तो नई तालिका में नई और बदली हुई पंक्तियां तब तक आती हैं जब आप नए को पुनर्गठित कर रहे हों। अगर यह मेरी परियोजना थी, तो अब मैं यह तय करने की कोशिश कर रहा हूं कि इस कॉलम नाम को बदलना कितना महत्वपूर्ण है। –

+0

हां। मैं एक काम कर सकता हूँ 1hr के डाउनटाइम की घोषणा करें और लोड कम होने पर यह परिवर्तन करें। शायद मध्यरात्रि में। हालांकि, आपके इनपुट के लिए धन्यवाद। – Kiran

0

आप ओक का उपयोग कर डाउनटाइम के बिना स्कीमा परिवर्तन से निपट सकते हैं।

oak-online-alter-table मूल तालिका की प्रतिलिपि बनाते हैं, आपके परिवर्तन लागू होते हैं और फिर डेटा की प्रतिलिपि बनाते हैं। सीआरयूडी संचालन अभी भी लागू किया जा सकता है क्योंकि ओक मूल तालिका पर कुछ ट्रिगर रखता है ताकि ऑपरेशन के दौरान कोई डेटा खोने वाला न हो।

कृपया other question देखें जहां ओक के लेखक इस तंत्र के बारे में विस्तृत स्पष्टीकरण देते हैं और अन्य उपकरणों को भी सुझाव देते हैं।

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