使用PHP会更快:多个DB连接类实例还是单例?

时间:2015-03-22 15:42:34

标签: php mysql oop

我正在开发一个新的PHP项目,它调用一个记录类来更新数据库。目前,需要执行此操作的每个对象或脚本都会生成该对象的新实例。理论上,这可能意味着每次呼叫多达六或七个实例。

设计当前要求对象在构造函数方法中连接到数据库,这意味着0到7个连接?

对于演示,我将仅使用MySQL,但由于它隐藏在单个界面背后,因此可以想象它可以轻松移植到其他数据存储(并且可能会)。

鉴于项目的性质,响应速度是关键的优化点,但是在需求很高的情况下,如果有这么多的连接,我会冒着系统超载的风险,因此无论如何都会减慢一切?

这是一种使用单身人士会更好(并且整体上更快)的情况吗?

或者有什么办法让我的蛋糕吃掉它?

3 个答案:

答案 0 :(得分:2)

与数据库服务器的连接需要一些时间来连接并消耗内存。此外,数据库服务器将同时接受的连接数也是有限的。这就是为什么连接数应尽可能小,这意味着只应使用同一个数据库的单个连接。

仅使用单个连接意味着您不必使用Singleton模式。只需在脚本开头的某处创建连接对象,并将其传递给将执行数据库查询的组件。

答案 1 :(得分:0)

我可以建议你两个解决方案:

  1. 如果可以的话,使用存储过程,它将减少Mysql连接数,更安全,并缓存。

  2. 首次使用Mysql连接,然后将数据保存到Redis或Memcached中。

  3. 它打算满足您的查询和您的需求。

    由于

答案 2 :(得分:0)

看看this solution。它为每个连接使用单例方法,并处理多个适配器之间的多个连接(例如mysql,memcached等)。

相关问题