【发布时间】:2015-08-27 20:29:00
【问题描述】:
我正在重构 PHP 代码以从 mysql_* 和 mysqli_* 函数转移到 PDO,并希望尽可能高效地完成此任务。
我使用了一个名为“core.common.php”的文件。我初始化 PDO 数据库访问对象,具有 $_SESSION 管理功能,以及其他功能,例如通用消息和错误通知功能(以 s 的形式)。我在开发和调试时广泛使用 MsgBox() 和 ErrBox() 功能。该文件包含在每个 PHP 生成的网页的顶部。
至少通过一些测试,我已经成功地将 PDO 对象(通过在 __construct 方法中注入 PDO 对象)传递给需要数据库访问的类。
在我看来,这种方法虽然到目前为止仍然有效,但仅适用于网站的每个访问者...每个访问者都可以在他们访问网站的所有页面中使用相同的 PDO 连接器。
我真正的问题是... 当有很多访客时会发生什么?每个人都有自己的 PDO 实例吗?这是否意味着会有很多数据库连接实例?
我要问的原因是我当前使用的主机“限制了我的资源使用”,原因是……根据他们的说法……“过度使用资源”。它是一个“共享服务器”。他们建议升级到 VPS(虚拟专用服务器),当然需要额外付费。
主持人是在骗我多$$吗?? 在专业人士的眼中,什么是我解决这个问题的最佳方法? 而且...绝对适合所有人...要批判性和具体性。
非常欢迎任何想法!
【问题讨论】:
-
如果您使用 mysql 或 mysqli 使用过多的资源,使用 PDO 也没有什么不同。如果你已经使用 mysqli 让它工作了,为什么要把所有东西都重构为 PDO?
-
每个人都有自己的 PDO 实例吗? 是的。但这应该不是问题,直到您同时获得 1000 个用户我的意思是相同的 5 分钟时间段,而不是同一天 :-) 所以通常即使是 VPS,服务器性能也没有问题。问题通常是您在 php 中编写代码和发送问题的方式。
-
如果您运行的不是静态站点,那么无论如何您都应该在 VPS 上。如果您不需要大量资源(读取 好 共享计划的价格大致相同。
-
@Mike... 重构不仅适用于 PDO,而且自从我最初编写的类以来,我学到了一些东西,这将使它们更有效率。
-
@prodigitalson... 在访问其 cPanel 上的“资源使用”部分时,我看到的唯一内容是进入/退出折线图达到最大值。我已向主持人询问了他们决定的详细原因。进入/退出(至少对我而言)意味着访客。没有指定数据库连接。