MySQL Concurrency: डेटा अखंडता सुनिश्चित करना
यदि आपका MySQL डेटाबेस InnoDB स्टोरेज इंजन का उपयोग कर रहा है, तो आप इस दौरान संभावित समवर्ती मुद्दों के बारे में चिंतित हो सकते हैं एक साथ रिकॉर्ड अद्यतन या सम्मिलन। यह आलेख जांचता है कि MySQL समवर्तीता को कैसे संभालता है और क्या आपको अपने एप्लिकेशन में अतिरिक्त हैंडलिंग को शामिल करने की आवश्यकता है। अविभाज्य हैं. एक वेरिएबल को बढ़ाने जैसे संचालन, जिसे "बेचा = बेचा 1" द्वारा दर्शाया जाता है, को समवर्ती पहुंच की परवाह किए बिना, परमाणु रूप से निष्पादित करने की गारंटी दी जाती है। उदाहरण के लिए, यदि आप एक वैरिएबल ("कारों से बेची गई कारों का चयन करें") को पुनः प्राप्त करते हैं, जिसे कोई अन्य उपयोगकर्ता संशोधित कर सकता है, तो बाद के अपडेट ("अपडेट कारें सेट बेची गईं = ए 1") गलत परिणाम दे सकता है।
लेन-देन-आधारित दृष्टिकोण
इस जोखिम को कम करने के लिए, लेनदेन के भीतर निर्भर प्रश्नों को लपेटने पर विचार करें। लेन-देन यह सुनिश्चित करते हैं कि संचालन का एक सेट एक इकाई के रूप में निष्पादित किया जाता है। लेन-देन के दौरान डेटा लॉक किया जाता है, समवर्ती संशोधनों को रोका जाता है और डेटा अखंडता की गारंटी दी जाती है।
BEGIN; ए = कारों में से चुनें; अद्यतन कारें सेट बेचा गया = एक 1; COMMIT;
InnoDB लेनदेन का समर्थन करता है, लेकिन MyISAM नहीं करता है। आपके एप्लिकेशन की समवर्ती आवश्यकताओं के आधार पर उपयुक्त भंडारण इंजन का चयन करना महत्वपूर्ण है। आपके एप्लिकेशन कोड में अतिरिक्त उपाय लागू करने के लिए, जैसे:
लॉकिंग:
समवर्ती पहुंच को रोकने के लिए तालिकाओं या पंक्तियों को मैन्युअल रूप से लॉक करना।BEGIN; a = SELECT Sold FROM Cars; UPDATE Cars SET Sold = a 1; COMMIT;
आशावादी लॉकिंग :
टाइमस्टैम्प या संस्करण पहचानकर्ताओं की तुलना करके समवर्तीता को नियंत्रित करना।कतार लगाना:
समवर्ती संचालन को एक कतार में संग्रहीत करना और उन्हें क्रमिक रूप से संसाधित करना।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3