मैं PHP डेवलपर हूं इसलिए सख्त मत बनो। मेरे पास एक बड़ी मेज है ~ 5.5 जीबी डंप। हमारे पीएम ने नई सुविधा देने के लिए इसमें नया कॉलम बनाने का फैसला किया। तालिका InnoDB है तो मैंने क्या कोशिश की:
तालिका लॉक के साथ स्क्रीन में परिवर्तन तालिका। ~ 30 घंटे और कुछ भी नहीं लिया। इसलिए मैंने इसे रोक दिया। पहले मैंने एक गलती की क्योंकि मैंने सभी लेन-देन को समाप्त नहीं किया था लेकिन दूसरी बार कोई मल्टीकॉक नहीं था। स्थिति थी
copy to tmp table
।चूंकि मुझे इस तालिका के लिए विभाजन को लागू करने की आवश्यकता है, इसलिए हम एक ही नाम और नई संरचना के साथ डंप, नाम बदलने और तालिका बनाने का निर्णय लेते हैं। लेकिन डंप सख्त प्रतिलिपि बना रहा है (कम से कम मुझे कुछ और नहीं मिला)। इसलिए मैंने इसके साथ एक नया कॉलम डंप करने
sed
और इसे क्वेरी करने के लिए जोड़ा । लेकिन कुछ अजीब त्रुटियां शुरू हुईं। मेरा मानना है कि यह चारसेट के कारण हुआ। Utf-8 और फ़ाइल में तालिका हमारे बाद ascii बन गईsed
। इसलिए मुझे 30% डेटा पर त्रुटियां (अज्ञात कमांड '\') मिलीं। तो यह भी एक बुरा तरीका है।
इसे पूरा करने और गति प्रदर्शन के लिए अन्य विकल्प क्या हैं (मैं इसे php स्क्रिप्ट के साथ कर सकता हूं, लेकिन इसमें उम्र लग जाएगी)। INSERT SELECT
इस मामले में प्रदर्शन क्या होगा ।
किसी भी अग्रिम के लिए धन्यवाद।
SET NAMES utf8
औरCOLLATION
डेटा के 30% के बाद भ्रष्ट क्यों idk हुंह .लेकिनsed
। मुझे लगता है कि बल्क लोड सबसे तेज होगा लेकिन शायद कुछ और मौजूद हो जो मुझे याद आ रहा है। धन्यवाद मार्क