我正在使用php和pdo,有些人告诉我,如果我在数据库中使用程序,我的程序会大大改善。
我想知道有哪些改进可以提供以下几点的程序:
还想知道调用过程的PDO参数化查询是否可能。
我很欣赏关于这个主题的任何材料(书籍,教程,代码,评论)。
答案 0 :(得分:4)
在决定要执行哪个程序的哪个部分时,这是个好问题。当我使用Classic ASP和MS SQL Server编写应用程序时,我遇到了类似的问题。
在回答您的问题之前,我想指出一个Web应用程序至少有三层:
常识是,无论在表示层进行哪些数据验证,我们都会将其放在那里。例如,检查某个表格字段是否为空。
当必须在其他两个层 - 应用程序和数据库层 - 开发应用程序时,这很有趣。许多糟糕的程序员以这样的方式编写代码,即Web服务器和数据库服务器之间有很多往返行程。我们应该考虑在这些时候在数据库中编写存储过程。
关于你提到的要点,我想回答:
请求速度。
由于Web服务器和数据库服务器之间的往返次数较少,因此对Web服务器的请求处理速度更快。当您的应用程序变得非常复杂并且数据增长过大(就数百TB而言)时,差异尤为显着。处理负载从您的Web服务器传输到您的数据库服务器,因此您的Web服务器更适合您的客户端请求。
安全方面。 (程序和数据库)。
为您的程序提供的安全性现在分为两个级别 - 在Web服务器级别和数据库级别。您可以限制这两者之间的通信,以确保您的程序不会崩溃,数据完好无损。
<强>可扩展性。强>
Web服务器代码和数据库服务器代码现在位于两个不同的层。两个层都可以根据需要独立扩展。请仔细阅读here以确定可伸缩性的含义。
盈利能力。
我不知道如何回答这个问题,但我想到了一个想法:如果您在支付数据库服务器并让它在Web服务器过载时闲置,那有什么意义呢?如果我要为数据库服务器付费,我会通过给它一些我的网络服务器的处理负载来充分利用它。
使用方便时,不使用时。
当Web和数据库服务器之间的往返次数过多时,最方便使用。我可能会一次又一次地提到这一点,但这个问题结果令人头疼。
什么时候不方便?好吧,在单个SQL语句执行所有必要操作的简单情况下。
其他好坏点。