数据库操作完成后需要关闭么,数据库操作完成关闭,每次操作数据库的时候需要


每次操作数据库的时候需要关闭么? 会不会自动关闭,还是自己关闭,哪种方式好

如果本次的rs不能关闭,需要交给下一段程序方法使用,建议一定要在交给的下一段程序使用完成之后立即关闭rs,connection。否则,数据库资源一直被占用,这样的话,你考虑过数据库的感受么。。。

一般来说这个问题通过库解决,开发者只需要根据调用库的规范操作即可,例如sqlalchemy。如果框架/库明确提供了关闭操作,那么请调用——一般来说是通过继承或其他抽象方式与基础框架(例如web框架)绑定,不需要每次和数据库交互自己写关闭代码。最后你得知道,连接数据库其实是一个代价很高的操作,所以实际上不可能针对每个请求连接关闭数据库。这时候框架或库提供的所谓“关闭”操作准确来说应该是“回收”,通常是回收到一个连接池,然后可以供给其他进程/线程调用。

1 每次都需要关闭
2 超时之后大部分DBMS (以及其SDK)都会在TCP层面上断开客户端.
3 一定养成手动关闭(手动指的是显式地调用关闭的方法,当然你可以自己写个自动化的封装来调用关闭,或者某些SDK里封装好了的关闭)的习惯,这个不是好习惯坏习惯的问题,而是必须做到的.

因为数据库资源是宝贵的(连接数是宝贵的) 如果你没有关闭,等待自动释放可能会非常长时间,这个时间里其他线程\进程将无法使用这个连接资源. 如果到处没有关闭, 那么很容易若干次操作以后用光连接数.(很多"大型"数据库的连接数也不过就是10-20)

用with statement

http://docs.python.org/2/reference/co...

编橙之家文章,

评论关闭