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

MySQL में sqlalchemy कनेक्शन कैसे बंद करें

उस कोड को सही तरीके से लिखने का तरीका यहां बताया गया है:

db = create_engine('mysql://[email protected]/test_database')
for i in range(1,2000):
    conn = db.connect()
    #some simple data operations
    conn.close()
db.dispose()

यानी Engine एक कारखाना है कनेक्शन के लिए और साथ ही एक पूल . के लिए कनेक्शन का, कनेक्शन का ही नहीं। जब आप कहते हैं conn.close() , कनेक्शन इंजन के भीतर कनेक्शन पूल में लौटा दिया जाता है , वास्तव में बंद नहीं है।

यदि आप चाहते हैं कि कनेक्शन वास्तव में बंद हो, यानी पूल न हो, तो NullPool के माध्यम से पूलिंग अक्षम करें :

from sqlalchemy.pool import NullPool
db = create_engine('mysql://[email protected]/test_database', poolclass=NullPool)

उपरोक्त के साथ Engine कॉन्फ़िगरेशन, प्रत्येक कॉल करने के लिए conn.close() अंतर्निहित DBAPI कनेक्शन को बंद कर देगा।

यदि OTOH आप वास्तव में भिन्न . से जुड़ना चाहते हैं प्रत्येक कॉल पर डेटाबेस, यानी आपका हार्डकोडेड "localhost/test_database" सिर्फ एक उदाहरण है और आपके पास वास्तव में बहुत सारे अलग-अलग डेटाबेस हैं, फिर dispose() . का उपयोग करके दृष्टिकोण ठीक है; यह हर उस कनेक्शन को बंद कर देगा जिसे पूल से चेक आउट नहीं किया गया है।

उपरोक्त सभी मामलों में, महत्वपूर्ण बात यह है कि Connection ऑब्जेक्ट close() के माध्यम से बंद हो जाता है . यदि आप किसी भी प्रकार के "कनेक्शन रहित" निष्पादन का उपयोग कर रहे हैं, तो वह है engine.execute() या statement.execute() , ResultProxy उस निष्पादन कॉल से लौटाई गई वस्तु को पूरी तरह से पढ़ा जाना चाहिए, या अन्यथा स्पष्ट रूप से close() . के माध्यम से बंद किया जाना चाहिए . एक Connection या ResultProxy जो अभी भी खुला है वह NullPool . को प्रतिबंधित करेगा या dispose() हर अंतिम कनेक्शन को बंद करने के दृष्टिकोण।



  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 में समान कॉलम मान हैं

  2. macOS पर mysql इंस्टॉल करें

  3. MySQL में सिंगल क्वेरी के साथ मल्टीपल काउंट कैसे प्राप्त करें

  4. MySQL ACOS () फ़ंक्शन - किसी संख्या का आर्क कोसाइन लौटाएं

  5. केकपीएचपी में एक मॉडल के लिए गतिशील रूप से एकाधिक डेटाबेस का उपयोग कैसे करें