mysql - 持久性与非持久性——我应该使用哪个?

标签 mysql

我的站点一直使用持久连接,根据我对它们的理解,没有理由不这样做。既然可以重用,为什么要关闭连接呢?我有一个站点,总共访问大约 7 个数据库。它不是一个巨大的流量站点,但它足够大。您如何看待 persistent,我应该使用它们吗?

最佳答案

使用持久连接:

  • 您无法有效地构建事务处理
  • 同一连接上不可能的用户 session
  • 应用程序不可扩展。随着时间的推移,您可能需要扩展它,并且需要管理/跟踪持久连接
  • 如果脚本出于某种原因无法释放表上的锁,则任何后续脚本将无限期阻塞,并且应该重新启动数据库服务器。使用事务,如果脚本执行在事务 block 完成之前结束,事务 block 也将传递给下一个脚本(使用相同的连接)等。

持久连接不会带来非持久连接所能做的任何事情。
那么,为什么要使用它们呢?
唯一可能的原因是性能,当创建到 SQL Server 的链接的开销很高时使用它们。这取决于许多因素,例如:

  • 数据库类型
  • MySQl 服务器是否在同一台机器上,如果不在,距离多远?可能不在您的本地网络/域中?
  • MySQL 所在的机器被其他进程重载了多少

总是可以用非持久连接代替持久连接。它可能会改变脚本的性能,但不会改变它的行为!

商业 RDMS 可能会根据并发打开的连接数获得许可,这里持久连接可能会失效

关于mysql - 持久性与非持久性——我应该使用哪个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3765925/

相关文章:

mysql - 我可以在 openshift 中每个档位拥有多个数据库吗?

将网络共享用于数据目录时,MySql docker 容器未启动

android - 从 mysql 中的 json 请求创建自定义 ListView

mysql - 在 MySql 5.5.2.24 上 setter 工示例数据库?

Java 数据库连接

java - JPA/Spring 从 2 个 MySQL 表返回 JSON 作为嵌套对象

mysql - MySQL Like搜索字符串中的任何日语字符

php - 将多个 POST 数组插入 MySql

php - MySQL IN 运算符不工作

mysql - 使用存储过程更新mysql中的表