是否需要在脚本末尾关闭Psycopg2连接?

Mar*_*rco 13 python postgresql database-connection psycopg2

psycopg2在Python脚本结束时不关闭连接有什么后果?例如,请考虑以下代码段:

import psycopg2
psycopg2.connect("dbname=test")
Run Code Online (Sandbox Code Playgroud)

该脚本打开一个连接,但最后不会关闭它.执行结束时连接是否仍然打开?如果是这样,是否存在未关闭连接的问题?

DJa*_*ens 11

通常当你的python程序退出时,它所拥有的所有套接字都将被关闭,并且打开的事务将中止.但最好在最后关闭连接.

只要您不再需要它就关闭连接会导致释放系统资源.哪个总是好的.

请记住,如果您关闭连接,请先提交更改.您可以在psycopg2 API中阅读:

立即关闭连接(而不是每次执行del时).从这一点开始,连接将无法使用; 如果尝试连接任何操作,将引发InterfaceError.这同样适用于尝试使用连接的所有游标对象.请注意,关闭连接而不先提交更改将导致任何挂起的更改被丢弃,就像执行ROLLBACK一样

  • 不关闭连接也会在 PostgreSQL 的日志中产生恼人的错误。 (6认同)