Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MyISAM से InnoDB में रूपांतरण को तेज करना

  • बड़ा innodb_buffer_pool_size (2GB या अधिक) सेट करना
  • खोल आदेशों का उपयोग करके अपने पुराने myisam डेटा/अनुक्रमणिका फ़ाइलों को पहले से पढ़ें
  • innodb_log_file_size (256 एमबी) बढ़ाएं
  • एक्स समानांतर थ्रेड में तालिका बदलें, जहां एक्स आपके सर्वर पर सीपीयू कोर की मात्रा है
  • केवल रूपांतरण के लिए अन्य मामूली बदलाव (innodb_doublewrite=0, innodb_flush_log_at_trx_commit=0)

innodb_buffer_pool_size को जितना संभव हो उतना ऊंचा सेट करना, इनोडब टेबल निर्माण को गति देने का सामान्य तरीका है - आपका डेटासेट ऐसा लगता है कि यह 2GB innodb बफर पूल के अंदर फिट हो सकता है, इसलिए किसी भी सभ्य 64 बिट सर्वर को इसकी अनुमति देनी चाहिए। तालिका प्रकार बदलें =innodb डंप + पुन:आयात समाधान से भी तेज़ है, और समानांतर में चलाना आसान है।

यह भी सुनिश्चित करें कि आपने innodb_log_file_size को डिफ़ॉल्ट 5Mb से बढ़ाकर 128 या 256MB कर दिया है। इसके साथ सावधान रहें, और इसे एक साफ शटडाउन + पुराने ib_logfile* को मिटाने की आवश्यकता है।

यदि आपके सर्वर में 8GB RAM जैसा कुछ है, और आप mysql का 64 बिट संस्करण चलाते हैं, तो मैं 2GB innodb_buffer_pool का सुझाव दूंगा, और आप डाउनटाइम के लिए बंद करने से पहले पुरानी MYD और MYI फ़ाइलों को पहले से पढ़ सकते हैं, ताकि वे अंदर हों वास्तविक कार्य प्रारंभ होने पर OS का पृष्ठ कैश।

यदि आप मामूली बदलाव के लिए भी जाते हैं, तो कृपया ध्यान रखें कि आपको अपने डेटा को सुरक्षित रखने के लिए रूपांतरण (एक और छोटा डाउनटाइम) के बाद उन्हें पूर्ववत करने की आवश्यकता है, मुझे संदेह है कि वे इतने छोटे डेटासेट के लिए इसके लायक हैं।

शुभकामनाएँ।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL क्वेरी को कोडनिर्देशक सिंटैक्स में कनवर्ट करना

  2. $_POST सरणी से MySQL में एकाधिक सम्मिलित करें

  3. केवल उन पंक्तियों का चयन करें जिनमें MySQL में केवल अल्फ़ान्यूमेरिक वर्ण हों

  4. तालिका फ़ील्ड में ईमेल पता सम्मिलित करना

  5. SQL क्वेरी में खंड के बीच एक्सेल सेल में दिनांक का उपयोग करें