我正在使用sqlalchemy库中的create_engine命令将数据帧转储到数据库中。
请参见以下代码:
from sqlalchemy import create_engine
connection = create_engine(.....)
DataFrame.to_sql(..., connection)
我是否需要在最后做这个connection.close()?
答案 0 :(得分:1)
您错误地认为createEngine
的结果是连接。参见Engine description
将Pool和Dialect连接在一起,以提供数据库连接和行为的来源。
另请参阅Working with Engines and Connections
create_engine()的典型用法是每个特定的数据库URL一次,在单个应用程序生命周期中全局保存。单个引擎代表该流程管理许多单独的DBAPI连接,并且打算以并发方式调用。该引擎不是DBAPI连接功能的同义词,DBAPI连接功能仅表示一种连接资源-当在应用程序的模块级别仅创建一次而不是按对象或按功能调用时,引擎效率最高。
您可以使用dispose
处置此引擎使用的连接池。
这具有完全关闭所有当前已检查的数据库连接的作用。仍被检出的连接将不会关闭,但是将不再与该引擎关联,因此,当单独关闭它们时,最终,与之关联的池将被垃圾回收,并且如果被关闭,则将其完全关闭。签到时尚未关闭。