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

mySQL - टेबल लॉकिंग बनाम रो लॉकिंग

यदि आपके पास tblAreas.AreaID पर एक अनुक्रमणिका है, तो कोई भी लेन-देन जिसमें WHERE tblAreas.AreaID in (...) शामिल है उन प्रविष्टियों के लिए अनुक्रमणिका लॉक कर देगा। इससे कोई फर्क नहीं पड़ता कि पंक्तियाँ स्वयं मौजूद हैं या नहीं। वह लॉक किसी अन्य लेन-देन को उन आईडी के लिए कोई प्रविष्टि डालने से रोकेगा। इसलिए मुझे नहीं लगता कि आपको अपने किसी भी सुझाव पर अमल करने की जरूरत है। केवल यह देखने के लिए कि क्या आपके क्षेत्र के लिए सभी क्षेत्र उपलब्ध हैं, आपको अपने क्षेत्र को परमाणु रूप से सम्मिलित करने के लिए आवश्यक ताले मिल जाएंगे।

यह एक समस्या हो सकती है क्योंकि आपके क्षेत्र की आईडी पूरी तरह से अद्वितीय नहीं हैं, इसलिए अलग-अलग मानचित्रों में एक ही आईडी वाले क्षेत्रों के बीच कुछ गलत क्रमांकन हो सकता है। यह आपकी tblAreas तालिका में mapID जोड़ने में मदद कर सकता है ताकि आप इसके बजाय देखने के लिए एक (mapID, areaID) अनुक्रमणिका बना सकें, जो अनुक्रमणिका पर झूठी टकराव से बच जाएगा। (यह आपकी स्कीमा को असामान्य बना देगा, जिसे आप अन्य कारणों से नहीं करना चाहेंगे।)




  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. PHP/mysql अद्यतन विवरण की प्रभावित पंक्तियों की संख्या प्राप्त करें

  3. डुप्लिकेट डेटा को mysql डेटाबेस में दर्ज होने से रोकें

  4. चेतावनी:mysql_result() पैरामीटर 1 को संसाधन, बूलियन दिए जाने की अपेक्षा करता है

  5. एनम ('हां', 'नहीं') बनाम टिनींट - किसका उपयोग करना है?