存储数据库过程



我正在使用php和pdo,有人告诉我,如果我在数据库中使用过程,我的程序将大大改进。

我想知道在以下方面有哪些改进可以提供程序:

  • 请求速度。
  • 安全方面。(程序和数据库)。
  • 可伸缩性。
  • 盈利。
  • 何时方便使用,何时不方便使用。
  • 其他优点和缺点。

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

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

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

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

  • 表示层,例如,客户端的web浏览器
  • 应用程序层- PHP或JSP或ASP服务器运行的地方
  • 和数据所在的数据库层。

这是常识,任何可能在表示层执行的数据验证,我们都把它放在那里。例如,检查某个表单字段是否为空。

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

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

  • 请求速度。

    对web服务器的请求处理得更快,因为web服务器和数据库服务器之间的往返次数更少。当您的应用程序变得非常复杂并且数据增长得非常大(以数百tb计)时,这种差异尤其明显。处理负载从你的web服务器转移到你的DB服务器,因此你的web服务器更适合你的客户端请求。

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

    提供给程序的安全性现在分为两个级别——web服务器级别和数据库级别。你可以限制这两者之间的通信,以确保你的程序不会崩溃,数据是完整的。

  • 可伸缩性。

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

  • 盈利。

    我不知道如何回答这个问题,但是一个想法突然出现在我的脑海里:如果你付钱给数据库服务器,让它闲置,而web服务器过载,这有什么意义?如果我为数据库服务器付费,我会充分利用它,让它分担我的web服务器的一些处理负载。

  • 何时方便使用,何时不方便使用

    当web和数据库服务器之间有太多的往返时,使用它是最方便的。我可能一遍又一遍地提到这个问题,但这个问题原来是一个令人头疼的问题。

    不方便的时候?好吧,在简单的情况下,一个SQL语句做所有必要的。

  • 其他优点和缺点。

    • 您必须确定这两个层之间的通信-传递什么和接收什么。确保所有内容都有良好的文件记录,因为任何错误都会阻碍这两个层次。

最新更新