php - 使用 PHP 什么会更快 : multiple DB connection class instances or a singleton?

标签 php mysql oop

我正在开发一个新的 PHP 项目,该项目调用记录类来更新数据库。目前,每个需要这样做的对象或脚本都会创建该对象的新实例。理论上,这可能意味着每次调用最多有六到七个实例。

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

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

鉴于项目的性质,响应速度是关键的优化点,但是,由于连接如此之多,我是否会在需求高时面临系统过载的风险,从而减慢一切速度?

在这种情况下,使用单例会更好(总体上更快)吗?

或者有什么办法可以鱼与熊掌兼得吗?

最佳答案

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

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

关于php - 使用 PHP 什么会更快 : multiple DB connection class instances or a singleton?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29196331/

相关文章:

php - PHP 闭包对象是否符合垃圾回收条件

php - 如何在 Laravel 5.4 和 MySQL 中运行此子查询

php - 如何比较两个数据库之间的 mysql 表并有效地更新差异?

mysql - Perl 脚本或 MySQL 修复?

mysql - 在下面的查询中哪一部分是昂贵的?

c# - 如何强制 DI 风格

c# - 字段 xxx 从未分配给,并且始终具有默认值 null

javascript - Paypal 客户端 REST : dynamic prices

php - 对象分配在 PHP OOP 中没有意义

php - OAuth2 PHP 更改过期时间