मुझे स्मृति समस्याएं हैं क्योंकि ऐसा लगता है कि delete()
का उपयोग करते समय Django स्मृति में वस्तुओं को लोड कर रहा है। क्या Django को ऐसा करने से रोकने का कोई तरीका है?'हटाएं() `का उपयोग करते समय django को स्मृति में वस्तुओं को लोड करने से कैसे रोकें?
Django डॉक्स से:
Django स्मृति में वस्तुओं को लाने के लिए संकेत भेज और झरने संभाल करने की जरूरत है। हालांकि, अगर कोई कैस्केड नहीं है और कोई सिग्नल नहीं है, तो Django स्मृति में लाने के बिना तेजी से पथ ले सकता है और वस्तुओं को हटा सकता है। बड़े डिलीट के लिए इसका परिणाम स्मृति उपयोग में काफी कमी हो सकती है। निष्पादित प्रश्नों की मात्रा भी कम हो सकती है।
https://docs.djangoproject.com/en/1.8/ref/models/querysets/#delete
मैं संकेतों का उपयोग नहीं करते। मेरे पास उस मॉडल पर विदेशी कुंजी है जिसे मैं हटाने की कोशिश कर रहा हूं, लेकिन मुझे नहीं पता कि Django को वस्तुओं को स्मृति में लोड करने की आवश्यकता क्यों होगी। ऐसा लगता है कि ऐसा करता है, क्योंकि मेरी याददाश्त बढ़ती जा रही है क्योंकि क्वेरी चलती है।
चूंकि आपके पास विदेशी कुंजी हैं, इसलिए Django को ऑब्जेक्ट्स को लोड करने की आवश्यकता है ताकि यह हल किया जा सके कि संबंध को हटाने को कैसे संभालना चाहिए: https://docs.djangoproject.com/en/1.8/ref/models/fields/#django .db.models.ForeignKey.on_delete – petkostas
@petkostas मैंने अपने विदेशी क्षेत्रों में 'on_delete = models.DO_NOTHING' डालने का प्रयास किया, लेकिन इससे मदद नहीं मिली। लेकिन यह मेरे लिए अच्छा समाधान नहीं होगा, मैं इस विशिष्ट क्वेरी के लिए स्मृति में वस्तुओं को लोड करना अक्षम करना चाहता हूं, मैं नहीं चाहता कि मेरे सभी प्रश्न विदेशी की बाधाओं को अनदेखा करें .. – rednaw
कच्चे एसक्यूएल का उपयोग समाधान हो सकता है । – NeoWang