Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да затворя sqlalchemy връзка в MySQL

Ето как да напишете този код правилно:

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() , връзката се връща към пула от връзки в Engine , всъщност не е затворено.

Ако искате връзката действително да бъде затворена, тоест да не бъде обединена, деактивирайте обединяването чрез 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() . A 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. Java:Вмъкнете няколко реда в MySQL с PreparedStatement

  2. Дължина на индекса на MySQL varchar

  3. Оптимизиране на MySQL търсене с използване на харесвания и заместващи знаци

  4. Как да извлечем текущата версия на MySQL система за управление на база данни (СУБД)?

  5. Как да импортирам .sql файл в mysql база данни с помощта на PHP?