Ric*_*d M 13 php mysql stored-procedures
在过去的10年里,我一直在编写带有SQL Server后端的asp.net应用程序.在那段时间里,我还写了一些PHP应用程序,但并不多.
我将把我的一些asp.net应用程序移植到PHP并遇到一些问题.在Asp.net世界中,通常理解在访问任何数据库时,使用视图或存储过程是这样做的首选方式.
我一直在阅读一些PHP/MySQL书籍,我开始觉得在MySQL中利用存储过程是不可取的.我在使用这个词时犹豫不决,但这只是我得到的感觉.
所以,我正在寻找的建议基本上是,我是对还是错?PHP开发人员是否完全使用存储过程?或者,它是否被避开了?
是否使用存储过程更多的是在酒吧进行宗教或政治讨论而不是.
需要做的是明确定义您的应用程序层,而不是跨越这些边界.与在数据库外进行查询相比,存储过程有几个优点和缺点.
优点1:存储过程是模块化的.从维护的角度来看,这是一件好事.当您的应用程序出现查询问题时,您可能会同意对存储过程进行故障排除比嵌入在许多GUI代码行中的嵌入式查询要容易得多.
优点2:存储过程是可调的.通过使用处理数据库的过程为您的接口工作,您无需修改GUI源代码来提高查询的性能.可以对存储过程进行更改 - 在连接方法,不同表等方面 - 对前端接口是透明的.
优点3:存储过程从客户端抽象或分离服务器端功能.编写GUI应用程序来调用过程要比通过GUI代码构建查询容易得多.
优点4:存储过程通常由数据库开发人员/管理员编写.拥有这些角色的人通常在编写高效查询和SQL语句方面经验丰富.这使GUI应用程序开发人员可以利用他们在应用程序的功能和图形表示部分上的技能.如果您让人们执行他们最适合的任务,那么您最终将产生更好的整体应用程序.
考虑到所有这些,有几个缺点.
缺点1:如果逻辑完全在存储过程中实现,那么涉及广泛业务逻辑和处理的应用程序可能会给服务器带来过多负载.这种处理的示例包括数据传输,数据遍历,数据转换和密集计算操作.您应该将此类处理移动到业务流程或数据访问逻辑组件,这些组件是比数据库服务器更具可伸缩性的资源.
缺点2:不要将所有业务逻辑放入存储过程中.当您必须使用Sp语言修改业务逻辑时,维护和应用程序的敏捷性将成为一个问题.例如,支持多个RDBMS的ISV应用程序不需要为每个系统维护单独的存储过程.
缺点3:编写和维护存储过程通常是一种并非所有开发人员都具备的专业技能.这种情况可能会在项目开发计划中引入瓶颈.
我可能错过了一些优点和缺点,随时评论.
| 归档时间: |
|
| 查看次数: |
4430 次 |
| 最近记录: |