如何打开与数据库的连接

时间:2012-01-06 18:54:22

标签: php mysql database performance connection

我正在使用一个mysql数据库,它涉及收集照片和人名,并在选择下拉菜单项时在页面上显示它们。我用PHP脚本访问数据库。

我习惯于每次访问数据库时都需要重新建立连接(我已经破解并且有效)但我希望这段代码看起来更专业。有没有人知道一种方法来保持数据库的连接打开,这样每次我发出数据请求时都不需要重新建立连接?

1 个答案:

答案 0 :(得分:3)

我假设您的意思是在多次调用服务器时保持连接打开。在同一个脚本中,您只需要打开一次连接。

mysqli文档显示了如何启用persistent connections

但是,您应该对代码进行基准测试,以确保连接到数据库确实是一个性能限制因素。通过检查应用程序,查询和架构之间的相互作用,您可以找到更大的回报。

使用较旧的mysql_pconnect函数,您可以运行连接的旧用户将事物置于非干净状态的问题:

  

持久连接的问题在于它们可以保留   客户无法预测的状态。例如,表锁可能是   在客户端意外终止之前激活。一个新客户   重用此持久连接的进程将获得连接“as   是“。任何清理都需要由新客户端进程完成   在它可以充分利用持久连接之前,增加   程序员的负担。

mysqli逻辑为你做了一大堆清理,所以这不是问题。

从文档中,清理包括:

  • 回滚有效交易
  • 关闭并删除临时表
  • 解锁表格
  • 重置会话变量
  • 关闭预备语句(总是用PHP发生)
  • 关闭处理程序
  • 释放使用GET_LOCK()
  • 获取的锁