MySQL लॉक डेडलॉक को समझना
समस्या:
5,000,000 पंक्तियों वाली एक MySQL तालिका के कारण गतिरोध होने का खतरा है इसे अद्यतन करने वाली पर्ल प्रक्रियाओं के समानांतर। किसी विशिष्ट पंक्ति को अद्यतन करते समय गतिरोध त्रुटि उत्पन्न होती है।
कारण:
गतिरोध तब होता है जब दो या दो से अधिक लेन-देन परस्पर विरोधी तरीके से एक ही पंक्ति पर ताले प्राप्त करने का प्रयास करते हैं। इस मामले में, फ़ाइल_टेबल पर a_lock का उपयोग करने वाली कई प्रक्रियाएं समवर्ती रूप से एक ही पंक्ति तक पहुंचने का प्रयास करती हैं।
समाधान:
1. लॉक वेट टाइमआउट को समझना:
त्रुटि संदेश लेनदेन को फिर से शुरू करने का सुझाव देता है। यह लॉक वेट टाइमआउट को संदर्भित करता है। डिफ़ॉल्ट रूप से, MySQL लॉक प्राप्त होने के लिए अनिश्चित काल तक प्रतीक्षा करता है। आप गतिरोधों को स्वचालित रूप से संभालने और पुनः प्रयास करने के लिए इसे छोटी टाइमआउट अवधि पर सेट कर सकते हैं।
2. गतिरोधों को संभालना:
विफल प्रश्नों को पुनः प्रयास करने के लिए अपने कोड में तर्क लागू करके गतिरोधों को संभालें। आप गतिरोध त्रुटि का पता लगाने और क्वेरी को स्वचालित रूप से पुन: निष्पादित करने के लिए प्रयास/पकड़ ब्लॉक का उपयोग कर सकते हैं।
3. अनुकूलन रणनीतियाँ:
गतिरोध की संभावना को कम करने के लिए, निम्नलिखित अनुकूलन पर विचार करें:
4. अनुशंसित संसाधन:
अधिक जानकारी के लिए, निम्नलिखित संसाधन देखें:
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3