在一个流量比较大的网站上,如果应用程序/业务逻辑是作为存储过程、触发器和视图编写的,而不是在PHP代码本身中编写,这会有影响吗?
考虑到可扩展性,最好的方法是什么?
在一个流量比较大的网站上,如果应用程序/业务逻辑是作为存储过程、触发器和视图编写的,而不是在PHP代码本身中编写,这会有影响吗?
考虑到可扩展性,最好的方法是什么?
根据我的经验,你应该将业务逻辑放在PHP代码中,而不是移到数据库中。假设你的数据库在一个独立的服务器上,当请求到来时,你不希望数据库忙于计算公式。
保持数据库的极速响应能力,以处理查询、插入和更新操作。
我的观点是,即使没有开发大型应用程序的经验,也要在数据库中编写业务逻辑,原因如下:
1-可维护性,我认为语言会在短时间内废弃函数并更改许多其他内容,因此如果PHP更改版本,则需要将代码适应新版本。
2-数据库往往更具语言稳定性,因此当关系型数据库管理系统(RDBMS)的新版本推出时,通常不会在编写查询或存储过程的方式上进行太多更改,甚至根本不会更改。在数据库中编写逻辑将减少由于新数据库版本而导致的代码适应。
3-RDBMS比编程语言更有可能长期存在。此外,由于您的数据很重要,RDBMS开发人员非常担心自动迁移整个数据到新的RDBMS版本,包括您的存储过程。当Clipper死亡时,没有办法将系统迁移到新的编程语言,它们必须完全重写。
4-如果您认为有一天出于某种原因(例如语言死亡)完全更改编写应用程序的语言,则唯一需要重新编写的是演示文稿和存储过程调用,而不是业务逻辑。
我想要从这里的其他人那里了解我的观点是否有道理,如果没有,为什么。我和Sabeen Malik处于相同的情况,我正考虑开始我的第一个大型项目,因为我写的内容而倾向于SPs。所以如果我的观点不正确,那么现在是纠正它的时候了。
MySQL不擅长使用高级数据库技术,它简单而快速。PHP作为一种动态语言,使数据处理非常容易。因此,通常使用PHP是有意义的。