"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं MySQL में ऑप्टिमिस्टिक लॉकिंग कैसे लागू कर सकता हूं?

मैं MySQL में ऑप्टिमिस्टिक लॉकिंग कैसे लागू कर सकता हूं?

2024-11-04 को प्रकाशित
ब्राउज़ करें:773

How can I implement Optimistic Locking in MySQL?

MySQL में ऑप्टिमिस्टिक लॉकिंग को समझना

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

आशावादी लॉकिंग लागू करने के लिए कदम

MySQL में आशावादी लॉकिंग लागू करने के लिए , निम्नलिखित चरणों का पालन किया जा सकता है:

डेटा का चयन करें:

SELECT स्टेटमेंट का उपयोग करके अपडेट किए जाने वाले डेटा को पुनः प्राप्त करें।

    अपडेट किए गए मानों की गणना करें:
  1. डेटा के लिए अद्यतन मान निर्धारित करने के लिए कोई भी आवश्यक गणना करें।
  2. संस्करण जांच के साथ डेटा अपडेट करें:
  3. डेटा को अपडेट करने के लिए एक अद्यतन कथन का उपयोग करें, लेकिन एक WHERE क्लॉज शामिल करें जो जांच करता है यदि डेटा का वर्तमान संस्करण चरण 1 में प्राप्त संस्करण से मेल खाता है।
  4. प्रभावित पंक्तियों की जाँच करें:
  5. अद्यतन विवरण निष्पादित करने के बाद, प्रभावित पंक्तियों की संख्या की जाँच करें (जैसे, SELECT ROW_COUNT( )). यदि एक पंक्ति प्रभावित हुई, तो अद्यतन सफल रहा।
  6. विरोध संभालें:
  7. यदि शून्य पंक्तियाँ प्रभावित हुईं, तो इसका मतलब है कि डेटा को किसी अन्य उपयोगकर्ता द्वारा संशोधित किया गया है। इस विरोध को अपने एप्लिकेशन तर्क में उचित रूप से संभालें, जैसे कि त्रुटि संदेश प्रदर्शित करना या डेटाबेस से डेटा को ताज़ा करना।
  8. उदाहरण
  9. यहां एक उदाहरण दिया गया है MySQL में आशावादी लॉकिंग लागू करने का:

# डेटा चुनें आईडी, नाम, संस्करण चुनें उपयोगकर्ताओं से जहां आईडी = 1; # अद्यतन मानों की गणना करें new_name = 'जॉन डो' नया_संस्करण = संस्करण 1 # संस्करण जांच के साथ डेटा अपडेट करें उपयोगकर्ताओं को अद्यतन करें सेट नाम = @new_name, संस्करण = @new_version जहां आईडी = 1 और संस्करण = @old_version; # प्रभावित पंक्तियों की जाँच करें ROW_COUNT() को प्रभावित_पंक्तियों के रूप में चुनें; #संघर्ष को संभालें यदि प्रभावित_पंक्तियाँ = 0 शुरू --संघर्ष हुआ - यहां संघर्ष को संभालें अंत; अन्य शुरू -- सफलतापूर्वक नवीनीकरण - एप्लिकेशन लॉजिक के साथ जारी रखें END;

संस्करण जांच के विकल्प

# Select data
SELECT id, name, version
FROM users
WHERE id = 1;

# Calculate updated values
new_name = 'John Doe'
new_version = version   1

# Update data with version check
UPDATE users
SET name = @new_name,
    version = @new_version
WHERE id = 1
  AND version = @old_version;

# Check affected rows
SELECT ROW_COUNT() AS affected_rows;

# Handle conflict
IF affected_rows = 0
  BEGIN
    -- Conflict occurred
    -- Handle the conflict here
  END;
ELSE
  BEGIN
    -- Update successful
    -- Continue with the application logic
  END;

टाइमस्टैंप जांच:

डेटा संशोधनों की जांच करने के लिए टाइमस्टैंप कॉलम का उपयोग करता है।

    फ़ील्ड तुलना:
  • परिवर्तनों का पता लगाने के लिए डेटा में विशिष्ट फ़ील्ड की तुलना करता है।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3