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

MySQL डेटाबेस अनुकूलन सर्वोत्तम अभ्यास

"सर्वोत्तम अभ्यास" है:

  1. प्रदर्शन को मापें, प्रासंगिक सबसिस्टम को जितना हो सके अलग करें।
  2. अड़चन के मूल कारण की पहचान करें। क्या आप I/O बाध्य हैं? सीपीयू बाध्य? स्मृति बाध्य? ताले पर इंतज़ार कर रहे हैं?
  3. आपके द्वारा खोजे गए मूल कारण को कम करने के लिए परिवर्तन करें।
  4. फिर से मापें, यह प्रदर्शित करने के लिए कि आपने अड़चन को ठीक कर दिया है और कितना
  5. चरण 2 पर जाएं और जब तक सिस्टम पर्याप्त तेजी से काम न करे तब तक आवश्यकतानुसार दोहराएं।

http://www.mysqlperformanceblog.com पर RSS फ़ीड की सदस्यता लें और इसके ऐतिहासिक लेख भी पढ़े। प्रदर्शन से संबंधित ज्ञान के लिए यह बेहद उपयोगी संसाधन है। उदाहरण के लिए, आपने InnoDB बनाम MyISAM के बारे में पूछा। उनका निष्कर्ष:InnoDB में MyISAM की तुलना में औसतन ~ 30% अधिक प्रदर्शन है। हालांकि कुछ उपयोग परिदृश्य भी हैं जहां MyISAM InnoDB से बेहतर प्रदर्शन करता है।

उस ब्लॉग के लेखक @Andrew बार्नेट द्वारा उल्लिखित पुस्तक "हाई परफॉर्मेंस MySQL" के सह-लेखक भी हैं।

@ ʞɔıu से पुन:टिप्पणी करें:कैसे बताएं कि आप I/O बाध्य हैं बनाम CPU बाध्य बनाम स्मृति बाध्य प्लेटफ़ॉर्म-निर्भर है। ऑपरेटिंग सिस्टम ps, iostat, vmstat, या top जैसे टूल ऑफ़र कर सकता है। या यदि आपका ओएस एक प्रदान नहीं करता है तो आपको एक तृतीय-पक्ष टूल प्राप्त करना पड़ सकता है।

मूल रूप से, जो भी संसाधन 100% उपयोग/संतृप्ति पर आंका गया है, वह आपकी अड़चन होने की संभावना है। यदि आपका CPU लोड कम है लेकिन आपके हार्डवेयर के लिए आपका I/O लोड अधिकतम है, तो आप I/O बाध्य हैं।

हालाँकि, यह सिर्फ एक डेटा बिंदु है। उपाय अन्य कारकों पर भी निर्भर हो सकता है। उदाहरण के लिए, एक जटिल SQL क्वेरी एक फाइलसॉर्ट कर रही है, और यह I/O को व्यस्त रखती है। क्या आपको इस पर अधिक/तेज़ हार्डवेयर फेंकना चाहिए, या क्या आपको फाइलसॉर्ट से बचने के लिए क्वेरी को फिर से डिज़ाइन करना चाहिए?

स्टैक ओवरफ्लो पोस्ट में सारांशित करने के लिए बहुत सारे कारक हैं, और तथ्य यह है कि इस विषय पर कई किताबें मौजूद हैं, इसका समर्थन करती हैं। डेटाबेस को कुशलता से संचालित करना और संसाधनों का सर्वोत्तम उपयोग करना एक पूर्णकालिक कार्य है जिसमें विशेष कौशल और निरंतर अध्ययन की आवश्यकता होती है।

जेफ एटवुड ने सिस्टम में बाधाओं को खोजने के बारे में एक अच्छा ब्लॉग लेख लिखा है:



  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.user' मौजूद नहीं है

  2. MySQL लोड डेटा:यह कमांड अभी तक तैयार स्टेटमेंट प्रोटोकॉल में समर्थित नहीं है

  3. डालने के बाद mySQL रिटर्न इंडेक्स

  4. MySQL में BLOB और TEXT डेटाटाइप के बीच क्या अंतर हैं?

  5. डेटाबेस से पूर्ण कैलेंडर जावास्क्रिप्ट में घटनाओं को पॉप्युलेट करना