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

MySQL डेटाबेस प्रदर्शन देने के लिए युक्तियाँ - भाग एक

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

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

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

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

MySQL प्रदर्शन समस्याओं की पहचान करना

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

पीएमएम (पेरकोना मॉनिटरिंग एंड मैनेजमेंट)

पेरकोना मॉनिटरिंग एंड मैनेजमेंट टूल MySQL, MongoDB, और MariaDB डेटाबेस (ऑन-प्रिमाइसेस या क्लाउड में) को समर्पित टूल का एक ओपन-सोर्स संग्रह है। पीपीएम उपयोग करने के लिए स्वतंत्र है, और यह प्रसिद्ध ग्राफाना और प्रोमेथियस समय श्रृंखला डीबी पर आधारित है। यह MySQL के लिए संपूर्ण समय-आधारित विश्लेषण प्रदान करता है। यह पूर्व-कॉन्फ़िगर किए गए डैशबोर्ड प्रदान करता है जो आपके डेटाबेस कार्यभार को समझने में मदद करते हैं।

पीएमएम क्लाइंट/सर्वर मॉडल का उपयोग करता है। आपको क्लाइंट और सर्वर दोनों को डाउनलोड और इंस्टॉल करना होगा। सर्वर के लिए, आप डॉकर कंटेनर का उपयोग कर सकते हैं। यह पीएमएम सर्वर डॉकटर इमेज खींचने, कंटेनर बनाने और पीएमएम लॉन्च करने जितना आसान है।

पीएमएम सर्वर छवि खींचें

docker pull percona/pmm-server:2

2: Pulling from percona/pmm-server

ab5ef0e58194: Downloading  2.141MB/75.78MB

cbbdeab9a179: Downloading  2.668MB/400.5MB

पीएमएम कंटेनर बनाएं

docker create \

   -v /srv \

   --name pmm-data \

   percona/pmm-server:2 /bin/true

कंटेनर चलाएँ

docker run -d \

   -p 80:80 \

   -p 443:443 \

   --volumes-from pmm-data \

   --name pmm-server \

   --restart always \

   percona/pmm-server:2

आप यह भी जांच सकते हैं कि यह बिना इंस्टालेशन के कैसा दिखता है। पीएमएम का डेमो यहां उपलब्ध है।

पीएमएम टूल सेट का एक अन्य टूल क्वेरी एनालिटिक्स (QAN) है। QAN टूल प्रश्नों के निष्पादन समय में सबसे ऊपर रहता है। आप SQL प्रश्नों का विवरण भी प्राप्त कर सकते हैं। यह विभिन्न मापदंडों का एक ऐतिहासिक दृश्य भी देता है जो एक MySQL डेटाबेस सर्वर के इष्टतम प्रदर्शन के लिए महत्वपूर्ण हैं। यह अक्सर यह समझने में मदद करता है कि क्या कोड में कोई परिवर्तन आपके प्रदर्शन को नुकसान पहुंचा सकता है। उदाहरण के लिए, आपकी जानकारी के बिना एक नया कोड पेश किया गया था। एक सरल उपयोग यह होगा कि आप अपने डेटाबेस के प्रदर्शन को बेहतर बनाने में मदद करने के लिए वर्तमान SQL प्रश्नों को प्रदर्शित करें और मुद्दों को हाइलाइट करें।

PMM MySQL डेटाबेस प्रदर्शन की समय-समय पर और ऐतिहासिक दृश्यता प्रदान करता है। डैशबोर्ड को आपकी विशिष्ट आवश्यकताओं को पूरा करने के लिए अनुकूलित किया जा सकता है। पिछली घटना के बारे में आप जो जानकारी चाहते हैं उसे खोजने के लिए आप किसी विशेष पैनल का विस्तार भी कर सकते हैं।

ClusterControl के साथ मुफ़्त डेटाबेस मॉनिटरिंग

ClusterControl संपूर्ण डेटाबेस अवसंरचना की रीयल-टाइम निगरानी प्रदान करता है। यह MySQL, MariaDB, PerconaDB, MySQL NDB क्लस्टर, Galera Cluster (Percona और MariaDB दोनों), MongoDB, PostgreSQL और TimescaleDB से शुरू होने वाले विभिन्न डेटाबेस सिस्टम का समर्थन करता है। निगरानी और परिनियोजन मॉड्यूल उपयोग करने के लिए स्वतंत्र हैं।

ClusterControl में कई मॉड्यूल होते हैं। मुफ़्त ClusterControl सामुदायिक संस्करण में हम उपयोग कर सकते हैं:

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

निगरानी और सलाहकार

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

ऑन-प्रिमाइसेस और क्लाउड सिस्टम की निगरानी और प्रबंधन एक ही बिंदु से किया जा सकता है . वितरित टोपोलॉजी के लिए बुद्धिमान स्वास्थ्य-जांच लागू की जाती है, उदाहरण के लिए, डेटाबेस नोड्स के लोड बैलेंसर के दृष्टिकोण का लाभ उठाकर नेटवर्क विभाजन का पता लगाना।

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

जैसा कि हम नीचे दी गई तस्वीर से देख सकते हैं, हम कुछ प्रश्नों को पकड़ने में सक्षम थे जो एक दिन के बीच एक विशिष्ट समय पर निष्पादन समय को बदलते हैं।

ClusterControl इंस्टाल करने के लिए यहाँ क्लिक करें और इंस्टालेशन स्क्रिप्ट डाउनलोड करें। इंस्टॉल स्क्रिप्ट आवश्यक इंस्टॉलेशन चरणों का ध्यान रखेगी।

इसे क्रियान्वित होते देखने के लिए आपको ClusterControl डेमो भी देखना चाहिए।

क्लस्टरकंट्रोल से आप डॉकटर इमेज भी प्राप्त कर सकते हैं।

$ docker pull severalnines/clustercontrol

इस बारे में अधिक जानकारी के लिए, इस लेख का अनुसरण करें।

MySQL डेटाबेस इंडेक्सिंग

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

आम तौर पर, अनुक्रमण उन स्तंभों पर सबसे अच्छा काम करता है जो आपके सामान्य रूप से निष्पादित प्रश्नों में WHERE क्लॉज के विषय हैं।

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

MySQL टेबल रन पर इंडेक्स चेक करने के लिए:

SHOW INDEX FROM table_name;

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

MySQL डेटाबेस स्वैपनेस

उन सर्वरों पर जहां MySQL एकमात्र सेवा चल रही है, vm.swapiness =1 सेट करना एक अच्छा अभ्यास है। डिफ़ॉल्ट सेटिंग 60 पर सेट है जो डेटाबेस सिस्टम के लिए उपयुक्त नहीं है।

vi /etc/sysctl.conf
vm.swappiness = 1

पारदर्शी विशाल पृष्ठ

यदि आप RedHat पर अपना MySQL चला रहे हैं, तो सुनिश्चित करें कि पारदर्शी विशाल पृष्ठ अक्षम हैं।

इसे कमांड द्वारा जांचा जा सकता है:

cat /proc/sys/vm/nr_hugepages
0

(0 का अर्थ है कि पारदर्शी विशाल पृष्ठ अक्षम हैं।)

MySQL I/O शेड्यूलर 

अधिकांश वितरणों में नोप या डेडलाइन I/O अनुसूचक डिफ़ॉल्ट रूप से सक्षम होने चाहिए। इसे जांचने के लिए चलाएं

cat /sys/block/sdb/queue/scheduler 

MySQL फाइलसिस्टम विकल्प

जर्नल फाइल सिस्टम जैसे xfs, ext4 या btrfs का उपयोग करने की अनुशंसा की जाती है। MySQL उन सभी के साथ ठीक काम करता है और अधिक संभावना है कि अंतर समर्थित अधिकतम फ़ाइल आकार के साथ आएंगे।

  • XFS (अधिकतम फ़ाइल सिस्टम आकार 8EB, अधिकतम फ़ाइल आकार 8EB)
  • XT4 (अधिकतम फ़ाइल सिस्टम आकार 8EB, अधिकतम फ़ाइल आकार 16TB)
  • BTRFS (अधिकतम फ़ाइल सिस्टम आकार 16EB, अधिकतम फ़ाइल आकार 16EB)

डिफ़ॉल्ट फ़ाइल सिस्टम सेटिंग्स ठीक लागू होनी चाहिए।

एनटीपी डीमन

डेटाबेस सर्वर पर एनटीपी टाइम सर्वर दानव स्थापित करना एक अच्छा सर्वोत्तम अभ्यास है। निम्न में से किसी एक सिस्टम कमांड का प्रयोग करें।

#Red Hat
yum install ntp
#Debian
sudo apt-get install ntp

निष्कर्ष

यह सब भाग एक के लिए है। अगले लेख में, हम डेटाबेस प्रदर्शन स्थिति को इकट्ठा करने के लिए 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 DELETE FROM सबक्वेरी के साथ कंडीशन के रूप में

  3. CURTIME () उदाहरण – MySQL

  4. MySQL संस्करण की जांच कैसे करें

  5. कैसे हल करें प्रमाणीकरण प्लगइन लोड करने में असमर्थ 'caching_sha2_password' समस्या