如何解决为什么我们总是要关闭与数据库的连接?
在一次采访中有人问我这个问题。为什么关闭数据库连接很重要?仅仅是一种好习惯,因为它可能会浪费资源,或者还有更多其他东西?
解决方法
您已经提到了第一个原因:资源泄漏。这意味着系统上的内存,套接字和文件描述符的使用一直在增加,直到程序或数据库崩溃,被杀死或使操作系统崩溃为止。甚至在这种情况发生之前,您的系统就可能变得无响应,变慢并且容易发生各种超时,网络断开等情况。
如果您的代码依赖于隐式提交(无论如何这是个坏主意),那么您将丢失应用程序写入数据库的数据。
不关闭连接也会在数据库中留下锁和事务,这意味着在等待僵尸连接持有的锁时其他连接会卡住。例如,如果您有一个外部报告系统,它可能会停止工作。数据库备份也可能会停止工作,使您容易遭受数据丢失的影响。
根据情况,未完成的事务也可能会填满数据库事务日志和/或临时空间,从而有可能使数据库处于脱机状态,需要手动干预。
如果使用连接池,则不关闭连接可能会阻止连接返回到池中。这意味着连接池最终将耗尽,从而阻止您的程序打开新的连接。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。