操作连接到Mysql数据库的成本有多高?

时间:2011-06-09 14:44:52

标签: php mysql optimization memcached

在代码的某些功能中,php将使用循环在相同的表上执行数百次或在某些情况下数千次查询。目前,它为每个查询创建一个新的数据库连接。这次手术有多贵?通过重复使用相同的连接,我会看到显着的速度增加吗?可能需要进行相当多的重构才能更改此行为并使用相同的数据库。

php使用mysql_connect连接数据库。

根据我在这里所说的,你会推荐其他明显的优化吗(我已经阅读了关于锁定表的例子......)?

编辑: 我的问题更多的是关于使用单个连接的好处,而不是如何避免使用多个连接。

3 个答案:

答案 0 :(得分:5)

mysql_connect州的文档:

  

如果使用相同的参数对mysql_connect()进行第二次调用,则不会建立新链接,而是会返回已打开链接的链接标识符。

因此,除非您使用不同的凭据进行连接,否则更改代码的这一部分不会影响性能。

答案 1 :(得分:1)

我使用Zend_Framework并且我的数据库分析显示连接本身比我的大多数查询花费的时间长近10倍。我有两个不同的数据库,我连接到每个请求只能连接一次。

我认为重新连接每个查询都是糟糕的设计,但重构问题比这更复杂。需要提出的问题:

  1. 目前是否存在性能问题?
  2. 您是否已完成代码分析以缩小性能问题的发生位置?
  3. 这次重构需要多长时间?考虑所涉及的测试,而不仅仅是编码时间。

答案 2 :(得分:0)

原始问题的答案应该是显而易见的。如果它对你来说不明显,那么如何找出自己有多大的影响仍然是显而易见的。

  

还有其他明显的优化

否 - 因为您没有提供表格结构的任何细节,也没有提供您正在运行的查询。