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

MySQL:लॉक प्रतीक्षा समयबाह्य पार हो गया

मैं एरिक से सहमत हूं; TRUNCATE TABLE जाने का रास्ता है। हालांकि, यदि आप किसी कारण से इसका उपयोग नहीं कर सकते हैं (उदाहरण के लिए, यदि आप वास्तव में नहीं करते हैं तालिका में प्रत्येक पंक्ति को हटाना चाहते हैं), आप निम्न विकल्पों को आजमा सकते हैं:

  • पंक्तियों को छोटे बैचों में हटाएं (उदा. बंडल_इनक्लूजन से DELETE WHERE id BETWEEN ? and ?)
  • यदि यह एक MyISAM तालिका है (वास्तव में, यह InnoDB के साथ भी काम कर सकती है), तो DELETE से पहले एक LOCK TABLE जारी करने का प्रयास करें। यह इस बात की गारंटी होनी चाहिए कि आपके पास विशेष पहुंच है।
  • यदि यह एक InnoDB तालिका है, तो बाद समयबाह्य होता है, INNODB स्थिति दिखाएँ का उपयोग करें। इससे आपको कुछ जानकारी मिलनी चाहिए कि लॉक अधिग्रहण क्यों विफल हुआ।
  • यदि आपके पास सुपर विशेषाधिकार है, तो आप यह देखने के लिए कि कौन से अन्य कनेक्शन (यदि कोई हैं) तालिका का उपयोग कर रहे हैं, SHOW PROCESSLIST ALL आज़मा सकते हैं, और फिर आप जिस कनेक्शन से प्रतिस्पर्धा कर रहे हैं, उससे छुटकारा पाने के लिए KILL का उपयोग करें।
  • ली>

मुझे यकीन है कि कई अन्य संभावनाएं हैं; मुझे आशा है कि इनमें से कोई एक मदद करेगा।



  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 सभी या 0 टाइमस्टैम्प लौटाते हुए a और b के बीच टाइमस्टैम्प का चयन करें

  2. पारंपरिक प्रतिकृति से GTID में माइग्रेट करें

  3. Oracle MySQL, Percona Server और MariaDB की तुलना करना

  4. xampp के साथ उबंटू के भीतर mysql डेटाबेस में ज़ोन टेबल कैसे पॉप्युलेट करें?

  5. SQL केवल तालिका में सम्मिलित करें यदि रिकॉर्ड मौजूद नहीं है