在PHP中反复打开MySQL连接的含义是什么?

时间:2010-06-22 20:38:16

标签: php mysql connection

具体来说,我有一个DB类,每次调用类中的Query函数时都会打开和关闭多个MySQL连接。我应该打开一次连接吗?或者打开和关闭这样的连接是否可以?

7 个答案:

答案 0 :(得分:3)

如果您不想更改而不是mysql_connect(),请使用mysql_pconnect() 这样您将使用打开的连接。我会同意@Sarfraz Ahmed - 只使用一次

答案 1 :(得分:3)

  

我应该打开一次连接吗?

没有

  

我认为最好释放内存

实际上,连接本身并不消耗内存 而且 - 最重要的部分 - 你不应该担心这些可以想象的事物 不要基于空洞的假设做出决定 以下是两条简单的规则:

  1. 当你不知道,做什么时,最普遍的做法,就像每个人一样。
  2. 只做必要的事情。不要试图预见未来的每一个问题。只处理当前存在的问题,而不是可以想象的问题。 过早优化是所有邪恶的根源,正如它所说的那样。

答案 2 :(得分:3)

我的头脑简单(ISAM,无交易)C语言应用程序每天运行8个小时,通过一个单独的MySQL连接在一个数据库中更新多个表,这些连接始终保持打开状态。它工作得很好。任何时候都有任何类型的MySQL错误(不仅服务器消失了),代码只是再次调用mysql_real_connect()并且它没有任何麻烦。重新连接是我认为MySQL功能完美无缺的地方之一。

但是关于持久连接的好/坏有很多争议和讨论。你可以在这里找到一些:

http://www.google.com/webhp?hl=&sourceid=navclient-ff&rlz=1B3GGLL_enUS384US384&ie=UTF-8#rlz=1B3GGLL_enUS384US384&hl=en&source=hp&q=mysql+persistent+connection&aq=0&aqi=g4g-m5&aql=&oq=mysql+persistent+conn&gs_rfai=Ch2c6iCchTO3zG4i6MZ-i7JAOAAAAqgQFT9BAKCs&fp=ff274912d96214e6

- HTH

答案 3 :(得分:2)

  

我应该打开一次连接吗?或是   可以打开和关闭连接   像这样?

你应该只在需要时打开多个连接,否则打开多个连接就不是一个好主意,从而消耗大量内存,这是一个开销。

答案 4 :(得分:1)

一般情况下,回到您可以找到的最简单的MySQL教程并以此方式执行。除非你有问题需要解决,否则不要偏离。

当你保持简单的脑力时,MySQL的工作正常。不要增加复杂性。

顺便说一句,你在写另一个MySQL抽象层吗?为什么?这个问题是一个很好的例子,为什么重新发明轮子会有风险。

答案 5 :(得分:0)

conecting也使用cpu时间。因此,如果您每页重新连接约8次,并且每天有大约100位访问者,平均每次调用5页,则您在一天内会有8 * 100 * 5 = 4000次重新连接。那是一个小网站。你应该考虑只连接一次或连接丢失时。这也会以某种方式降低您的电费; - )

答案 6 :(得分:0)

我认为您应该使用注册表对象来打开数据库连接,并使您的数据库对象成为单例。

Registry::Set('DB', new Database());
$DB = Registry::Get('DB');