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