0

我正在使用php和pdo,有人告诉我,如果我在数据库中使用程序,我的程序会大大提高。

我想知道在以下几点方面可以提供程序的改进是什么:

  • 请求速度。
  • 安全方面。(程序和数据库)。
  • 可扩展性。
  • 盈利能力。
  • 什么时候方便,什么时候不方便。
  • 其他有好有坏之分。

还想知道调用过程的 PDO 参数化查询是否可能。

我很欣赏任何关于这个主题的材料(书籍、教程、代码片段、评论)。

4

1 回答 1

4

在决定程序的哪个部分在哪里执行时,这是个好问题。当我使用 Classic ASP 和 MS SQL Server 编写应用程序时,我遇到了类似的问题。

在回答您的问题之前,我想指出一个 Web 应用程序至少具有三层:

  • 表示层,例如客户端的网络浏览器
  • 应用层——你的 PHP 或 JSP 或 ASP 服务器运行的地方
  • 以及数据所在的数据库层。

常识是,无论可以在表示层执行什么数据验证,我们都将其放在那里。例如,检查某个表单域是否为空。

当应用程序必须在其他两层(应用程序和数据库层)开发时,这很有趣。许多糟糕的程序员编写代码的方式是在 Web 服务器和 DB 服务器之间进行多次往返,以完成非常小的事情。我们应该考虑在这些时候在数据库中编码存储过程。

关于你提到的几点,我想回答:

  • 请求速度。

    由于 Web 服务器和数据库服务器之间的往返次数较少,因此对您的 Web 服务器发出的请求处理得更快。当您的应用程序变得非常复杂并且数据变得太大(以数百 TB 计)时,这种差异尤其显着。处理负载从您的 Web 服务器转移到您的数据库服务器,因此您的 Web 服务器更适合您的客户端请求。

  • 安全方面。(程序和数据库)。

    为您的程序提供的安全性现在处于两个级别 - Web 服务器级别和数据库级别。您可以对这两者之间的通信进行限制,以确保您的程序不会崩溃并且数据完好无损。

  • 可扩展性。

    Web 服务器代码和数据库服务器代码现在处于两个不同的层。两个层都可以根据需要独立扩展。阅读此处了解可扩展性的确切含义。

  • 盈利能力。

    我不知道如何回答这个问题,但我突然想到一个想法:如果您支付数据库服务器费用并让它在 Web 服务器超载时闲置,那有什么意义呢?如果我为数据库服务器付费,我会充分利用它,给它一些我的 Web 服务器所具有的处理负载。

  • 什么时候方便,什么时候不方便。

    当 Web 和数据库服务器之间的往返次数过多时,使用它最为方便。我可能会一次又一次地提到这一点,但事实证明这个问题令人头疼。

    When it is not convenient? Well, in simple cases where a single SQL statement does everything necessary.

  • Others good and bad points.

    • You must be sure about the communication between these two tiers - what is passed and what is received. Keep everything well documented as any mistake would hamper both the tiers.
于 2013-03-22T13:27:35.897 回答