MyISAM में विभिन्न प्रकार के ताले हैं। एक SELECT
ऑपरेशन एक READ LOCK . रखता है मेज पर। जब तक कोई सक्रिय WRITE LOCKS नहीं है, तब तक किसी भी समय कई सक्रिय रीड लॉक हो सकते हैं . संचालन जो तालिका को संशोधित करते हैं, उदा। INSERT
, UPDATE
, DELETE
या ALTER TABLE
लॉक लिखें मेज पर। राइट लॉक को केवल तभी टेबल पर रखा जा सकता है जब कोई सक्रिय रीड लॉक न हो; यदि सक्रिय रीड लॉक हैं, तो MyISAM सभी सक्रिय रीड लॉक की समय सीमा समाप्त होते ही राइट लॉक को सक्रिय करने के लिए कतारबद्ध कर देता है।
इसी तरह जब एक सक्रिय राइट लॉक होता है, तो टेबल पर रीड लॉक लगाने का प्रयास लॉक (और संबंधित क्वेरी) को तब तक कतारबद्ध करेगा जब तक कि टेबल पर राइट लॉक की समय सीमा समाप्त नहीं हो जाती।
अंतत:इसका मतलब यह है कि:
- आपके पास कितने भी सक्रिय रीड लॉक हो सकते हैं (जिन्हें साझा लॉक भी कहा जाता है)
- आपके पास केवल एक सक्रिय राइट लॉक हो सकता है (जिसे अनन्य लॉक भी कहा जाता है)
अधिक जानकारी के लिए देखें:http://dev.mysql। com/doc/refman/5.5/hi/internal-locking.html