我正在开发一个新的PHP项目,它调用一个记录类来更新数据库。目前,需要执行此操作的每个对象或脚本都会生成该对象的新实例。理论上,这可能意味着每次呼叫多达六或七个实例。
设计当前要求对象在构造函数方法中连接到数据库,这意味着0到7个连接?
对于演示,我将仅使用MySQL,但由于它隐藏在单个界面背后,因此可以想象它可以轻松移植到其他数据存储(并且可能会)。
鉴于项目的性质,响应速度是关键的优化点,但是在需求很高的情况下,如果有这么多的连接,我会冒着系统超载的风险,因此无论如何都会减慢一切?
这是一种使用单身人士会更好(并且整体上更快)的情况吗?
或者有什么办法让我的蛋糕吃掉它?
答案 0 :(得分:2)
与数据库服务器的连接需要一些时间来连接并消耗内存。此外,数据库服务器将同时接受的连接数也是有限的。这就是为什么连接数应尽可能小,这意味着只应使用同一个数据库的单个连接。
仅使用单个连接意味着您不必使用Singleton
模式。只需在脚本开头的某处创建连接对象,并将其传递给将执行数据库查询的组件。
答案 1 :(得分:0)
我可以建议你两个解决方案:
如果可以的话,使用存储过程,它将减少Mysql连接数,更安全,并缓存。
首次使用Mysql连接,然后将数据保存到Redis或Memcached中。
它打算满足您的查询和您的需求。
由于
答案 2 :(得分:0)
看看this solution。它为每个连接使用单例方法,并处理多个适配器之间的多个连接(例如mysql,memcached等)。