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

MySQL:एक साधारण टेबल पर समवर्ती अद्यतन (थ्रेड्स के माध्यम से)

लॉकिंग निहित है, हाँ, लेकिन यह executeUpdate() द्वारा नहीं किया जा रहा है . MySQL में स्टोरेज इंजन लॉकिंग और अनलॉकिंग को हैंडल करता है।

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

InnoDB के साथ स्थिति समान है, लेकिन बहुत अलग है, इसमें InnoDB केवल तालिका के एक हिस्से को लॉक करता है, आमतौर पर पंक्ति स्तर पर, जहां InnoDB एक इंडेक्स के भीतर एक रेंज को लॉक कर सकता है, जिससे इंडेक्स में उस रेंज पर पंक्तियों को लॉक कर सकता है (और अंतराल जो उनसे पहले है)। यह लॉकिंग टेबल लॉकिंग की तुलना में अधिक बारीक है, बेहतर समवर्ती व्यवहार की अनुमति देता है, लेकिन एक ही पंक्ति पर कोई समवर्ती संचालन नहीं है - प्रत्येक कार्यकर्ता उस लॉक या लॉक की प्रतीक्षा करता है जिसकी उसे आवश्यकता होती है।

दोनों ही मामलों में, ताले परोक्ष रूप से लिए जाते हैं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sql . में डेटाबेस प्रश्न

  2. जब आपको mysql पर 20 अंकों से बड़े पूर्णांकों की आवश्यकता हो तो क्या करें?

  3. ऑटो वेतन वृद्धि प्राथमिक गिनती में अंतराल छोड़ रहा है

  4. क्या सी के लिए मानक MySQL कनेक्शन पूलिंग लाइब्रेरी है?

  5. MySQL सीमांकक सिंटैक्स त्रुटि