इन्नो-टेबल्स (आश्चर्य!) के साथ आयात की गति के संबंध में मेरे पिछले प्रश्न का अनुसरण है ।
परिदृश्य
मैं उचित समय में अपने स्थानीय देव मशीन पर कुछ बड़े * डेटाबेस डंप आयात करने की कोशिश करता हूं। हमारे पास बहुत सी KEY
सारणियाँ हैं जो एक अड़चन के रूप में सामने आई हैं लेकिन अभी भी हमारी लाइव प्रणाली के लिए महत्वपूर्ण हैं।
ऊपर प्रश्न पूछने के बाद मेरा दृष्टिकोण KEY ...
डंप, आयात और फिर से जोड़ने वाली कुंजियों के बयानों को हटाना था ।
हालांकि मैं अक्सर खुद को स्थानीय रूप से आयात करने के लिए एक वर्तमान डंप का संपादन करता हुआ पाता हूं और मैं इन मजेदार "टिप्पणियों" (द disable/enable keys
-लाइन्स) को ठोकर मारता हूं
--
-- Dumping data for table `monster`
--
LOCK TABLES `monster` WRITE;
/*!40000 ALTER TABLE `monster` DISABLE KEYS */;
INSERT … INSERT … INSERT
/*!40000 ALTER TABLE `monster` ENABLE KEYS */;
UNLOCK TABLES;
लेकिन वास्तव में ये "टिप्पणियां" सशर्त MySql-Statements हैं
यह मेरे लिए खबर थी, लेकिन ठीक है, आउटपुट फॉर्म को देखते हुए mysql --version
सब कुछ मुझे ठीक लग रहा है:
mysql Ver 14.14 Distrib 5.5.38, for debian-linux-gnu (x86_64) using readline 6.3
मुझे लगता है
कि मेज बंद है (ठीक है, यह सिर्फ देव मैशाइन पर है)। तब तालिका स्कीमा में परिभाषित कीज़ को अक्षम किया जाता है, डेटा आयात किया जाता है, कुंजियाँ सक्षम की जाती हैं।
इसलिए "डेटा सम्मिलन" के दौरान-कुंजियों पर कोई समय बर्बाद नहीं करना चाहिए, बल्कि सभी डेटा डालने के बाद जांच की जानी चाहिए।
मैं सोच रहा हूं कि यह वही व्यवहार है जैसे मैं KEY 'foo' (foo)'
डंप से सभी- स्टोरी को हटाता हूं , डंप को आयात करता हूं और ADD KEY 'foo' ...
बाद में स्क्रिप्ट चलाता हूं ।
मैं जो निरीक्षण करता हूं
वह कुंजियों को मैन्युअल रूप से हटाने, आयात करने और फिर से जोड़ने के लिए तेजी से रास्ता है, फिर सशर्त DISABLE KEYS
बयानों पर भरोसा करते हुए मेरी बनाईmysqldump
डंप + mysql आयात + जोड़ चाबियाँ = 15 + 8 + 8 s 30min के
सादे संपादन mysql आयात: दिया, (मैं सिर्फ 8 घंटे / दिन के लिए भुगतान कर रहा हूं :))
मैं मदद नहीं कर सकता, लेकिन यह सोचकर कि मैं यहाँ बहुत मौलिक कुछ याद कर रहा हूँ (या डेटाबेस मुझे ट्रोल कर रहा है)।
mysqldump --innodb-optimize-keys
Percona से percona.com/doc/percona-server/5.5/management/... दीर्घकालिक: mysqldump और उपयोग mydumper या xtrabackup का उपयोग कर बंद करो।