哪个更好:mysql_connect或mysql_pconnect

Kwa*_*ame 10 php mysql

我是一个PHP新手,正在编写一些脚本来显示数据库中的一些新闻文章,并希望找到一些东西.

  • 要打开与MySQL数据库的连接,这是一个更好的选择mysql_connect还是mysql_pconnect
  • 使用持久连接到数据库有什么优点或缺点?
  • 在什么样的情况下会要求持久连接?

Sve*_*lov 19

如果您要编写网页,则无需持久连接.它需要太多资源.使用mysql_connect.最小化数据库连接打开的时间,尽可能不使用.打开,获取你想要的东西,关闭.当用户只是阅读时,它不需要保持打开状态.如果它们响应,最终将使用该连接 - 插入/转到另一页面.

以下是关于在Web应用程序中不使用持久连接的一些优点

  • 当您锁定表时,通常在连接关闭时它会被解锁,但由于持久连接不会关闭,因此您意外离开的任何表都将保持锁定状态,解锁它们的唯一方法是等待连接超时或终止这个过程.事务发生同样的锁定问题.(见2002年4月23日和2003年7月12日的评论)

  • 通常,在连接关闭时会删除临时表,但由于持久连接不会关闭,因此临时表不是那么临时.如果在完成后未显式删除临时表,则对于重新使用相同连接的新客户端,该表将已存在.设置会话变量时会出现同样的问题.(见以下评论于2004年11月19日和2006年8月7日)

  • 如果PHP和MySQL位于同一服务器或本地网络上,则连接时间可以忽略不计,在这种情况下,持久连接没有任何优势.

  • Apache不能很好地与持久连接一起使用.当它收到来自新客户端的请求时,它不会使用已打开持久连接的可用子节点之一,而是会生成一个新子节点,然后必须打开一个新的数据库连接.这会导致过多的进程正在睡眠,浪费资源,并在达到最大连接时导致错误,此外它还会破坏持久连接的任何好处.(见2004年2月3日的评论,以及http://devzone.zend.com/node/view/id/686#fn1上的脚注 )

  • 您应该引用这些要点的来源:http://www.php.net/manual/en/function.mysql-pconnect.php#85670.使用mysql_pconnect对于更快地达到连接限制并且必须管理它而言比实际资源消耗更加困难. (6认同)
  • 我之前在某个地方见过这篇文章...看起来复制粘贴.无论如何,之前已经探讨了这个话题:http://stackoverflow.com/questions/1128329/mysql-persistent-connections-and-advantages-of-mysqlpconnect (2认同)