哪个更好:mysql_connect和mysql_pconnect

时间:2009-08-27 12:46:16

标签: php mysql

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

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

4 个答案:

答案 0 :(得分:19)

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

Here是关于不使用在Web应用程序中持久连接的一些好处

  
      
  • 当您锁定表时,通常在连接关闭时它会被解锁,但由于持久连接没有关闭,所以任何表都是你   不小心离开锁定将保持锁定,并且唯一的方法   解锁它们是等待连接超时或杀死   处理。事务发生同样的锁定问题。 (看到   以下评论于2002年4月23日及以后12-JUL-2003)

  •   
  • 通常在连接关闭时会删除临时表,但由于持久连接不会关闭,因此临时表不会关闭   如此暂时。如果您没有明确删除临时表   完成后,该表将存在于重新使用的新客户端   相同的连接。设置会话时会出现同样的问题   变量。 (见下面的评论见2004年11月19日和2006年8月7日)

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

  •   
  • Apache与持久连接不兼容。当它收到来自新客户端的请求时,而不是使用其中一个   它已经打开了持久连接的可用子节点   往往会产生一个新的孩子,然后必须打开一个新的数据库   连接。这导致过多的进程正在睡觉,   浪费资源,并在达到最大值时导致错误   连接,加上它会破坏持久连接的任何好处。   (见下文于2004年2月3日的评论,以及脚注于   http://devzone.zend.com/node/view/id/686#fn1

  •   

答案 1 :(得分:1)

您还应该查看mysqlipdo。 mysql-extension非常古老,不支持mysqli的预处理语句。并且pdo支持多个数据库而无需更改查询。

答案 2 :(得分:1)

您应该在高负载的网站上使用mysql_pconnect,因此连接将被重用。这可以将速度提高两倍......

但是,如果你不期望高负荷;使用正常连接的原因是上面提到的Svetlozar Angelov。

答案 3 :(得分:-1)

请不要回答这个问题,已经在其他地方提出并回答了问题。见上面的链接。