我的站点一直使用持久连接,根据我对它们的理解,没有理由不这样做。既然可以重用,为什么要关闭连接呢?我有一个站点,总共访问大约 7 个数据库。它不是一个巨大的流量站点,但它足够大。您如何看待 persistent,我应该使用它们吗?
最佳答案
使用持久连接:
- 您无法有效地构建事务处理
- 同一连接上不可能的用户 session
- 应用程序不可扩展。随着时间的推移,您可能需要扩展它,并且需要管理/跟踪持久连接
- 如果脚本出于某种原因无法释放表上的锁,则任何后续脚本将无限期阻塞,并且应该重新启动数据库服务器。使用事务,如果脚本执行在事务 block 完成之前结束,事务 block 也将传递给下一个脚本(使用相同的连接)等。
持久连接不会带来非持久连接所能做的任何事情。
那么,为什么要使用它们呢?
唯一可能的原因是性能,当创建到 SQL Server 的链接的开销很高时使用它们。这取决于许多因素,例如:
- 数据库类型
- MySQl 服务器是否在同一台机器上,如果不在,距离多远?可能不在您的本地网络/域中?
- MySQL 所在的机器被其他进程重载了多少
总是可以用非持久连接代替持久连接。它可能会改变脚本的性能,但不会改变它的行为!
商业 RDMS 可能会根据并发打开的连接数获得许可,这里持久连接可能会失效
关于mysql - 持久性与非持久性——我应该使用哪个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3765925/