数据库连接需要关闭吗?

时间:2019-09-18 10:16:14

标签: python database sqlalchemy

我正在使用sqlalchemy库中的create_engine命令将数据帧转储到数据库中。

请参见以下代码:

from sqlalchemy import create_engine
connection = create_engine(.....)
DataFrame.to_sql(..., connection)

我是否需要在最后做这个connection.close()?

1 个答案:

答案 0 :(得分:1)

您错误地认为createEngine的结果是连接。参见Engine description

  

将Pool和Dialect连接在一起,以提供数据库连接和行为的来源。

另请参阅Working with Engines and Connections

  

create_engine()的典型用法是每个特定的数据库URL一次,在单个应用程序生命周期中全局保存。单个引擎代表该流程管理许多单独的DBAPI连接,并且打算以并发方式调用。该引擎不是DBAPI连接功能的同义词,DBAPI连接功能仅表示一种连接资源-当在应用程序的模块级别仅创建一次而不是按对象或按功能调用时,引擎效率最高。

您可以使用dispose

关闭引擎管理的连接
  

处置此引擎使用的连接池。

     

这具有完全关闭所有当前已检查的数据库连接的作用。仍被检出的连接将不会关闭,但是将不再与该引擎关联,因此,当单独关闭它们时,最终,与之关联的池将被垃圾回收,并且如果被关闭,则将其完全关闭。签到时尚未关闭。