【问题标题】:Is it required to close a Psycopg2 connection at the end of a script?是否需要在脚本结束时关闭 Psycopg2 连接?
【发布时间】:2015-07-06 08:17:08
【问题描述】:

在 Python 脚本结束时不关闭psycopg2 连接的后果是什么?例如,考虑以下 sn-p:

import psycopg2
psycopg2.connect("dbname=test")

脚本打开一个连接,但最后没有关闭它。执行结束时连接是否仍然打开?如果是这样,不关闭连接是否有问题?

【问题讨论】:

    标签: python postgresql database-connection psycopg2


    【解决方案1】:

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

    当您不再需要连接时立即关闭它会释放系统资源。这总是好的。

    请记住,如果您确实关闭了连接,请先提交您的更改。正如您在 psycopg2 API 中看到的那样:

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

    【讨论】:

    • 不关闭连接也会在 PostgreSQL 的日志中产生恼人的错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-31
    • 2020-11-22
    • 1970-01-01
    相关资源
    最近更新 更多