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

MySQL अक्षम करें और कुंजी सक्षम करें

आपको निश्चित रूप से इंजन के प्रकार के आधार पर अपना दृष्टिकोण चुनना होगा... ऑप्टिमाइज़ करना MyISAM के लिए या InnoDB के लिए

हमने हाल ही में डेटा डालने के विभिन्न तरीकों की तुलना करते हुए एक बेंचमार्क चलाया और सम्मिलन से पहले और सभी सूचकांक पूरी तरह से बहाल होने तक के समय को मापा। यह एक खाली टेबल पर था, लेकिन हमने 10 मिलियन पंक्तियों तक का उपयोग किया।

MyISAM LOAD DATA INFILE . के साथ और ALTER TABLE ... ENABLE/DISABLE KEYS हमारे परीक्षण में जीत हासिल की (विंडोज 7 सिस्टम पर, MySQL 5.5.27 - अब हम इसे लिनक्स सिस्टम पर आजमा रहे हैं)।

सक्षम और अक्षम कुंजियाँ InnoDB के लिए काम नहीं करती हैं, यह केवल MyISAM है। InnoDB के लिए, SET AUTOCOMMIT = 0; SET FOREIGN_KEY_CHECKS = 0; SET UNIQUE_CHECKS = 0; यदि आप सुनिश्चित हैं कि आपके डेटा में डुप्लीकेट नहीं हैं (उन्हें 1 पर सेट करना न भूलें अपलोड पूर्ण होने के बाद)।

मुझे नहीं लगता कि आपको OPTIMIZE TABLE need की आवश्यकता है बल्क इंसर्ट के बाद - MySQL पंक्तियों को इंसर्शन द्वारा ऑर्डर किया जाता है और इंडेक्स को फिर से बनाया जाता है। बल्क इंसर्ट करने से कोई "अतिरिक्त विखंडन" नहीं होता है।

अगर मैंने तथ्यात्मक त्रुटियां की हैं तो बेझिझक टिप्पणी करें।

अद्यतन करें: हमारे हाल के और पूर्ण परीक्षण परिणामों के अनुसार, DISABLE / ENABLE कुंजियों की सलाह गलत है।

एक सहकर्मी के पास एक प्रोग्राम था जिसमें कई अलग-अलग परीक्षण चलाए गए थे - एक टेबल जिसमें InnoDB / MyISAM पहले से भरा हुआ और खाली था, चयन और सम्मिलन गति LOAD DATA LOCAL के साथ , INSERT INTO , REPLACE INTO और UPDATE , "घने" और "खंडित" तालिकाओं पर (मुझे पूरा यकीन नहीं है कि कैसे, मुझे लगता है कि यह DELETE FROM ... ORDER BY RAND() LIMIT ... की तर्ज पर था। एक निश्चित बीज के साथ तो यह अभी भी तुलनीय है) और सक्षम और अक्षम सूचकांक।

हमने विंडोज और लिनक्स पर कई अलग-अलग MySQL संस्करणों (5.0.27, 5.0.96, 5.1.something, 5.5.27, 5.6.2) के साथ इसका परीक्षण किया (हालांकि दोनों ओएस पर समान संस्करण नहीं)। MyISAM तभी जीता जब टेबल खाली थी। InnoDB तेज़ था जब डेटा पहले से मौजूद था और आम तौर पर बेहतर प्रदर्शन करता था (HDD-space को छोड़कर - MyISAM डिस्क पर छोटा होता है)।

फिर भी, इसका वास्तव में लाभ उठाने के लिए, आपको इसे स्वयं परीक्षण करना होगा - विभिन्न संस्करणों, विभिन्न कॉन्फ़िगरेशन सेटिंग्स और बहुत धैर्य के साथ - विशेष रूप से अजीब विसंगतियों के संबंध में (5.0.97 एक ही कॉन्फ़िगरेशन के साथ 5.5.27 से बहुत तेज था - हम 'अभी भी कारण खोज रहे हैं)। हमने जो पाया वह था वह DISABLE KEYS और ENABLE KEYS यदि आप खाली टेबल से शुरुआत नहीं करते हैं तो वे बेकार और कभी-कभी हानिकारक होते हैं।



  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. MySQL समय को कैसे बदलें

  3. अल्पविराम से अलग जुड़ने और MySQL में सिंटैक्स पर जुड़ने में क्या अंतर है?

  4. मेरे कोड में पॉप अप रखने में त्रुटि (कनेक्शन पहले से खुला है)

  5. केवल एक mysql क्वेरी में पहली पंक्ति को हथियाना