mysql - लॉक टेबल का पता लगाना(लॉक टेबल द्वारा लॉक किया गया)



locking (4)

क्या MySQL में लॉक टेबल का पता लगाने का कोई तरीका है? मेरा मतलब है कि LOCK TABLE table WRITE/READ कमांड द्वारा लॉक की गई LOCK TABLE table WRITE/READ

(ध्यान दें कि GET_LOCK साथ प्राप्त किए गए ताले का पता लगाने में रुचि रखने वाले पाठकों को इसके बजाय get_lock से सभी वर्तमान ताले दिखाएं ।)


Answer #1

आप GET_LOCK (लॉकनेम, टाइमऑट) के साथ अपना स्वयं का लॉक बना सकते हैं

यदि आप टेबल से लॉक करने से पहले 0 समय के साथ एक GET_LOCK(lockName, 0) करते हैं और उसके बाद एक RELEASE_LOCK(lockName) साथ अनुसरण करते हैं, तो GET_LOCK() प्रदर्शन करने वाले अन्य थ्रेड्स को 0 का मान मिलेगा जो उन्हें बताएगा ताला एक और धागे द्वारा आयोजित किया जा रहा है।

हालाँकि यह काम नहीं करेगा यदि आपके पास तालिकाओं को लॉक करने से पहले GET_LOCK() कॉल करने वाले सभी धागे नहीं हैं। तालिकाओं को लॉक करने के लिए प्रलेखन here

उम्मीद है की वो मदद करदे!


Answer #2

आप प्रत्येक तालिका की लॉक स्थिति दिखाने के लिए SHOW OPEN TABLES का उपयोग कर सकते हैं। कमांड के डॉक पेज पर अधिक विवरण http://dev.mysql.com/doc/refman/5.1/en/show-open-tables.html


Answer #3

सबसे सरल तरीका है:

SHOW OPEN TABLES WHERE In_use > 0

आपको केवल मौजूदा डेटाबेस के लॉक किए गए टेबल मिलते हैं।






locking