【问题标题】:mysqli persistent connectionmysqli 持久连接
【发布时间】:2011-03-29 14:47:27
【问题描述】:

简而言之,对于高使用率的PHPMySQL 服务器是否有某种mysqli_pconnect,或者我是否需要坚持使用mysql 未改进?如果是这样,他们为什么要删除它?

【问题讨论】:

    标签: php mysql mysqli


    【解决方案1】:

    在 PHP 5.3 中引入了对此的支持。对于在此之前的版本,PDO 和 - 上帝保佑 - mysql 扩展是唯一的选择。

    引用manual

    与 mysql 扩展不同,mysqli 不提供单独的函数来打开持久连接。要打开持久连接,您必须在连接时将 p: 添加到主机名。

    【讨论】:

      【解决方案2】:

      我不关心 MySQL 中的持久连接。持久连接适用于 Oracle 等数据库,其中建立新连接的速度要慢得多。

      在 MySQL 中,建立连接相对较快(尤其是在您关闭反向 DNS 查找的情况下)。应该不需要与 MySQL 的持久连接。如果您的应用对性能至关重要,那么您可以做很多事情,而不是担心持久连接。

      此外,持久连接会带来意想不到的副作用。如果您使用 MySQL 变量、临时表、更改连接的字符集或忘记完成事务,则可能会导致问题。例如,您可以将一个用户的私有数据暴露给另一个用户的 PHP 会话,因为您让一个临时表处于活动状态。

      【讨论】:

      • 阅读我链接到的手册页。每个 PHP 请求之后都有清理操作。但是,是的,大多数时候使用持久连接并不值得。
      【解决方案3】:

      其实mysqli库有persistent support。只需在主机名前加上“p:”即可。

      【讨论】:

      • 如何在主机名前添加“p:”?例如:$this->mysqli = new mysqli(mysql_host,mysql_user,mysql_password,mysql_database);
      • @JavaNewb:很抱歉复活了一个旧线程,但我们留下了一个未回答的问题!我用字符串连接“添加 p:”。示例:$this->mysqli = new mysqli('p:'.mysql_host, mysql_user, mysql_password, mysql_database);
      猜你喜欢
      • 1970-01-01
      • 2011-04-21
      • 2012-07-24
      • 2012-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-08
      • 1970-01-01
      相关资源
      最近更新 更多