python - Saving many Django objects with one big INSERT statement -


कल्पना करें कि आपके पास निम्न स्थिति है:

  मैं एक्सरेन्ज (100000) में: account = खाता () account.foo = i अकाउंट.Save   

जाहिर है, जेएमजी द्वारा निष्पादित 100,000 INSERT स्टेटमेंट्स कुछ समय लेने जा रहे हैं। यह उन सभी INSERT से एक बड़े INSERT में गठबंधन करने में सक्षम होगा। मैं जिस चीज़ की उम्मीद कर रहा हूं, वह यह है कि मैं कर सकता हूं:

  सम्मिलन = [] एक्सरेन्ज (100000) में: account = account () account.foo = i inserts.append (अकाउंट .inert_sql) sql = 'जो भी हो ... में सम्मिलित करें'। ','। सम्मिलित करें (सम्मिलित)   

क्या ऐसा करने का एक तरीका है QuerySet का उपयोग करते हुए, बिना मैन्युअल रूप से उन सभी को INSERT स्टेटमेंट?

आप कच्चे एसक्यूएल का उपयोग कर सकते हैं।

या तो account.objects.raw () या django.db.connection ऑब्जेक्ट का उपयोग करके।

यह एक विकल्प नहीं है यदि आप डेटाबेस नास्तिकता बनाए रखना चाहते हैं।

यदि आप कर रहे हैं तो एक समय सेटअप है, शायद एक स्थिरता का उपयोग करना बेहतर होगा।

Comments