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

MySQL प्रदर्शन ट्यूनिंग पर 10 उपयोगी टिप्स

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

यह सुनिश्चित करने के लिए कि आपका सर्वर स्थिर और सुसंगत प्रदर्शन प्रदान करके कुशलतापूर्वक और प्रभावी ढंग से संचालित होता है, आपको कार्यभार या कॉन्फ़िगरेशन ट्रैप में कुछ सूक्ष्मताओं के कारण अक्सर होने वाली गलतियों को समाप्त करना चाहिए।

जैसे-जैसे डेटा वॉल्यूम बढ़ता है, यह तेजी से जटिल होता जाता है। इसलिए, एक कुशल एंड-यूज़र अनुभव प्रदान करने के लिए डेटाबेस को अच्छी तरह से अनुकूलित करना आवश्यक है। MySQL प्रदर्शन ट्यूनिंग अंतिम समाधान है क्योंकि यह इन डेटाबेस समस्याओं के समाधान प्रदान करने में मदद करेगा।

MySQL प्रदर्शन ट्यूनिंग

इस लेख में, आप MySQL प्रदर्शन ट्यूनिंग का उपयोग करने के तरीके के बारे में कुछ उपयोगी टिप्स पाएंगे। इससे आपको अपने MySQL से सर्वश्रेष्ठ प्रदर्शन प्राप्त करने में मदद मिलेगी।

चरण 1:MySQL को कतार के रूप में उपयोग न करें

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

वे दो प्रमुख प्रदर्शन जटिलताओं का कारण बनते हैं:

  1. वे आपके कार्यभार को क्रमबद्ध करते हैं, इस प्रकार कार्यों को समानांतर क्रम में पूरा होने से रोकते हैं। इसके अलावा, वे अक्सर एक ऐसी तालिका में परिणत होते हैं जिसमें प्रक्रिया में कार्य और लंबे समय पहले संसाधित किए गए कार्यों से ऐतिहासिक डेटा होता है। यह आम तौर पर प्रसंस्करण गति और प्रक्रिया को धीमा कर देता है।
  2. दोनों अनुप्रयोग में विलंबता जोड़ते हैं और MySQL पर लोड करते हैं।

चरण 2:अपने कार्यभार को प्रोफाइल करें

अपने कार्यभार की रूपरेखा बनाना आवश्यक है क्योंकि यह आपको यह समझने में मदद करता है कि आपका सर्वर कैसे काम करता है और वह समय प्रसंस्करण कार्यों में खर्च करता है। ऐसा करने में आपकी मदद करने के लिए सबसे अच्छा टूल है पेरकोना टूलकिट से MySQL एंटरप्राइज मॉनिटर्स क्वेरी एनालाइजर।

नोट: केवल Linux उपयोगकर्ताओं के लिए उपलब्ध है

उपकरण सर्वर द्वारा निष्पादित प्रश्नों को कैप्चर कर सकते हैं और प्रतिक्रिया समय के क्रम को कम करके क्रमबद्ध कार्यों की एक तालिका लौटा सकते हैं।

अपने कार्यभार की रूपरेखा आगे ट्यूनिंग के लिए सबसे महंगी क्वेरी को उजागर करती है। समय सबसे महत्वपूर्ण है क्योंकि महत्वपूर्ण यह है कि यह प्रश्न जारी करते समय कितनी जल्दी पूरा होता है।

प्रोफाइलिंग टूल समान प्रश्नों को भी समूहित करते हैं, जो आपको धीमी और तेज़ क्वेरी देखने की अनुमति देता है लेकिन कई बार निष्पादित की जाती हैं।

चरण 3:चार मूलभूत संसाधनों को समझना

सीपीयू, मेमोरी, डिस्क और नेटवर्क डेटाबेस के कार्य करने के लिए आवश्यक चार मूलभूत संसाधन हैं। इसलिए, यदि इनमें से कोई भी संसाधन अतिभारित, कमजोर या अनियमित है, तो डेटाबेस के खराब प्रदर्शन की संभावना है।

आपको हमेशा यह सुनिश्चित करना चाहिए कि MySQL के त्रुटिपूर्ण प्रदर्शन के लिए सभी उल्लिखित चार संसाधन मजबूत और स्थिर हैं। संगठन आमतौर पर तेज़ CPU और डिस्क वाले उन सर्वरों को चुनते हैं जिनमें अधिक मेमोरी स्लॉट हो सकते हैं।

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

समस्या निवारण करते समय, चार संसाधनों के प्रदर्शन आँकड़े निर्धारित करने में मदद करने के लिए सभी चार संसाधनों के प्रदर्शन और उपयोग की सावधानीपूर्वक जाँच करें। उनके प्रदर्शन की निगरानी करना महत्वपूर्ण है क्योंकि इससे उपयोगकर्ता को यह जानने में मदद मिलती है कि क्या सुधार किया जाना चाहिए या प्रतिस्थापन की आवश्यकता है। आप इस विधि को आजमा सकते हैं क्योंकि यह MYSQL में प्रदर्शन समस्याओं को हल करने के सबसे तेज़ तरीकों में से एक है।

चरण 4:सबसे सस्ते पहले परिणामों को फ़िल्टर करें

ऑप्टिमाइज़ेशन का एक बढ़िया तरीका यह है कि पहले सस्ता, सटीक काम किया जाए, फिर छोटे पर कठिन, सटीक काम किया जाए, जिसके परिणामस्वरूप डेटा सेट होता है।

उदाहरण:

मान लीजिए कि आप किसी भौगोलिक बिंदु के दिए गए दायरे में कुछ ढूंढ रहे हैं। मेरे प्रोग्रामर के टूलबॉक्स में पहला टूल हैवरसाइन {ग्रेट सर्कल} फ़ॉर्मूला है जो किसी गोले की सतह के साथ दूरी की गणना करता है।

तकनीक के साथ समस्या यह है कि सूत्र के लिए कई त्रिकोणमितीय संचालन की आवश्यकता होती है, जो बहुत सीपीयू संवेदनशील होते हैं। नतीजतन, गणना धीरे-धीरे चलती है और मशीन के सीपीयू उपयोग को आसमान छूती है।

सूत्र का उपयोग करने से पहले, अपने रिकॉर्ड को कुल के एक छोटे उपसमुच्चय में कम करें और परिणामी सेट को एक सटीक सर्कल में ट्रिम करें। वर्ग जिसमें वृत्त होता है, चाहे वह ठीक हो या अभेद्य, ऐसा करने का एक आसान तरीका है। यह सुनिश्चित करता है कि वर्ग के बाहर की दुनिया कभी भी उन सभी महंगे त्रिकोणमितीय कार्यों से प्रभावित न हो।

चरण 5:दो स्केलेबिलिटी डेथ ट्रैप को जानना और समझना।

स्केलेबिलिटी उतनी अस्पष्ट नहीं हो सकती जितनी कई लोग मानते हैं। इसके बजाय, मापनीयता की सटीक गणितीय परिभाषाएं हैं जो समीकरणों के रूप में व्यक्त की जाती हैं जो इस बात पर प्रकाश डालती हैं कि सिस्टम उतने बड़े पैमाने पर क्यों नहीं होते जितना उन्हें होना चाहिए।

यूनिवर्सल स्केलेबिलिटी लॉ एक परिभाषा है जो सिस्टम की मापनीयता विशेषताओं को व्यक्त और परिमाणित करने में आसान है। यह क्रमांकन और क्रॉसस्टॉक के संदर्भ में स्केलिंग समस्याओं की व्याख्या करता है, जो दो मूलभूत लागतें हैं।

समानांतर प्रक्रियाएँ जो कुछ क्रमागत होने के लिए रुकनी चाहिए, उनकी मापनीयता में स्वाभाविक रूप से सीमित हैं। इसके अलावा, अगर समानांतर प्रक्रियाओं को अपने काम के समन्वय के लिए एक दूसरे के साथ संवाद करने की आवश्यकता होती है, तो वे एक दूसरे को सीमित कर देते हैं। इसलिए, आपके एप्लिकेशन को जल्दी और कुशलता से स्केल करने में सक्षम बनाने के लिए क्रमांकन और क्रॉसस्टॉक से बचना पसंद किया जाता है।

चरण 6:कॉन्फ़िगरेशन पर ज़्यादा ध्यान न दें

लोग कॉन्फ़िगरेशन को ट्वीक करने में बहुत अधिक समय व्यतीत करते हैं। परिणाम आमतौर पर एक महत्वपूर्ण सुधार नहीं होता है और कभी-कभी बहुत हानिकारक हो सकता है। MySQL के साथ शिप करने वाली डिफ़ॉल्ट सेटिंग्स एक आकार की होती हैं जो किसी के लिए भी फिट नहीं होती हैं और बुरी तरह से पुरानी हो जाती हैं, आपको कुछ भी कॉन्फ़िगर करने की आवश्यकता नहीं होती है।

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

चरण 7:पृष्ठ पर अंक लगाना प्रश्नों से सावधान रहें

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

क्वेरी पक्ष पर, सीमा के साथ ऑफ़सेट का उपयोग करने के बजाय, एक और पंक्ति का चयन किया जा सकता है, और जब आप "अगला पृष्ठ" पर क्लिक करते हैं, तो आप परिणामों के अगले सेट के लिए उस अंतिम पंक्ति को शुरुआती बिंदु के रूप में निर्दिष्ट कर सकते हैं।

चरण 8:आँकड़ों को उत्सुकता से सहेजें, अनिच्छा से सचेत करें

चेतावनी और निगरानी जरूरी है लेकिन सामान्य निगरानी प्रणाली के साथ क्या होता है कि यह झूठी सकारात्मक भेजना शुरू कर देता है। सिस्टम प्रशासक शोर को रोकने के लिए ईमेल फ़िल्टरिंग नियम स्थापित करते हैं, और जल्द ही आपकी निगरानी प्रणाली बेकार हो जाती है।

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

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

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

चरण 9:अनुक्रमण के तीन नियमों को जानें

यह डेटाबेस में सबसे गलत समझा जाने वाला विषय है क्योंकि अनुक्रमणिका कैसे काम करती है और सर्वर उनका उपयोग कैसे करता है, इसके बारे में जानने के कई तरीके हैं। इंडेक्स, यदि ठीक से डिज़ाइन किया गया है, तो डेटाबेस सर्वर में तीन महत्वपूर्ण उद्देश्यों की पूर्ति करता है;

  1. एकल पंक्तियों के बजाय, अनुक्रमणिका सर्वर को आसन्न पंक्तियों के समूह खोजने देती है। बहुत से लोग सोचते हैं कि अनुक्रमित का उद्देश्य अलग-अलग पंक्तियों को खोजना है, लेकिन एकल पंक्तियों को खोजने से यादृच्छिक डिस्क संचालन होता है, जिससे सर्वर बहुत धीमा हो जाता है। एक-एक करके पंक्तियों को खोजने की तुलना में पंक्तियों के समूह ढूँढना बहुत बेहतर और दिलचस्प है।
  2. यह सर्वर को वांछित क्रम में पंक्तियों को पढ़कर छँटाई से बचने देता है। पंक्तियों को पढ़ना, छँटाई के विपरीत, बहुत तेज़ और कम खर्चीला है।
  3. अनुक्रमणिकाएं सर्वर को केवल अनुक्रमणिका से संपूर्ण प्रश्नों को संतुष्ट करने देती हैं, टेबलेट तक पहुँचने की आवश्यकता से बचते हुए। इसे विभिन्न रूप से कोवे इंडेक्स या केवल-इंडेक्स क्वेरी के रूप में जाना जाता है।

चरण 10:अपने साथियों की विशेषज्ञता का लाभ उठाएं

क्या आप इसे अकेले नहीं करना चाहेंगे? समस्याओं के बारे में उलझन में और जो आपको तार्किक और समझदार लगता है वह करना सबसे अधिक काम कर सकता है लेकिन हर समय नहीं। इसलिए इसके बजाय, टूलसेट और समस्या निवारण मार्गदर्शिकाओं से परे जाकर MySQL से संबंधित संसाधनों का एक नेटवर्क बनाएं।

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

इन युक्तियों को पूरा करने के लिए टूल की तलाश करने वाले कुछ लोगों के लिए, आप MySQL और MySQL Percona मॉनिटरिंग प्लग इन के लिए Percona Configuration Wizard देख सकते हैं।

कॉन्फ़िगरेशन विज़ार्ड आधार रेखा बनाने में आपकी सहायता कर सकता है। my.cnf फ़ाइल एक नए सर्वर के लिए है जो सर्वर के साथ शिप करने वाली नमूना फ़ाइलों से बेहतर है।

क्वेरी सलाहकार जो सर्वर के साथ शिप करने वाली नमूना फ़ाइलों से बेहतर है। सलाहकार आपके एसक्यूएल का विश्लेषण करेगा ताकि पेजिनेशन क्वेरी (टिप 7) जैसे संभावित विनाशकारी पैटर्न का पता लगाने में मदद मिल सके।

Percona मॉनिटरिंग प्लगइन्स मॉनिटरिंग और ग्राफ़िंग प्लग इन के सेट हैं जो आपको आँकड़ों को उत्सुकता से सहेजने और अनिच्छा से सचेत करने में मदद करते हैं (चरण संख्या 8)। ये सभी उपकरण स्वतंत्र रूप से उपलब्ध हैं।

प्रदर्शन ट्यूनिंग के लाभ

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

एक बार डेटाबेस को सही ढंग से ट्यून करने के बाद, यह बड़ी कार्यक्षमता के साथ लाभकारी प्रदर्शन परिणाम देता है। यह न केवल अवांछित कार्य भार को कम करता है बल्कि तेजी से डेटा पुनर्प्राप्ति के लिए MySQL डेटाबेस को भी अनुकूलित करता है।

अन्य सेटिंग्स आपके कार्यभार या हार्डवेयर के आधार पर फर्क कर सकती हैं। लक्ष्य यह है कि आपको गैर-बुनियादी सेटिंग्स को बदलने या दस्तावेज़ों को पढ़ने में बहुत अधिक समय खर्च किए बिना यह समझने के लिए कि कौन सी सेटिंग्स आपके लिए मायने रखती हैं, जल्दी से एक समझदार MySQL कॉन्फ़िगरेशन प्राप्त करने के लिए आपको कुछ MySQL प्रदर्शन ट्यूनिंग देना है।

निष्कर्ष

अंत में, प्रदर्शन ट्यूनिंग कई लाभ प्रदान करता है, और यह अनुशंसा की जाती है कि आपके सर्वर की दक्षता में सुधार के लिए डेटा के बड़े ट्रैक्ट पर काम करते समय। इस लेख में दिए गए सुझावों का पालन करके, आप अपने सर्वर और डेटाबेस पर आराम से MySQL प्रदर्शन ट्यूनिंग करने में सक्षम होंगे।


  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. फ्लोट और दशमलव डेटा प्रकार के बीच अंतर

  4. कोडइग्निटर ढांचे का उपयोग करके सरणी से एकाधिक पंक्तियों को कैसे सम्मिलित करें?

  5. क्या mysql कनेक्शन बंद करना महत्वपूर्ण है?