![]() |
1
10
我无法向您提供统计数据,但除非您计划在将来将PHP更改为另一种语言,否则我可以说,将业务逻辑保留在PHP中更为“可伸缩性友好”。 解决web服务器负载问题总是比将它们放在数据库中更容易、更便宜。您的数据库总是需要快速启动,而仅仅向它扔镜子并不能解决问题。您拥有的数据库从属服务器越多,需要执行的写入操作就越多。 |
![]() |
2
3
根据我的经验,您应该将业务逻辑放在PHP代码中,而不是将其移动到数据库中。假设您的数据库位于单独的服务器上,您不希望数据库在收到请求时忙于计算公式。
|
![]() |
3
2
我认为将数据库代码保留在数据库中会有更好的可伸缩性,随着记录数量的增加,可以对数据库进行性能调优。您还将拥有更好的数据完整性,这对数据的可用性至关重要。您在应用程序中看不到太多terrabyte大小的关系数据库及其所有代码。
|
![]() |
4
2
当试图决定是否将业务逻辑放在数据库或应用程序代码中时,有几件事要考虑。
如果数据库将从一个站点使用,并且该站点是用一种语言编写的,那么这就不是问题。否则,您需要考虑存储过程、触发器等的复杂性,并试图在多个代码库中维护数据库访问逻辑等。
这一考虑相当直截了当。全面的关系数据库,特别是在SQL的任何变体中,都将在插入、更新和删除数据方面发挥巨大作用。一般来说,它们也能很好地处理原子事务。然而,大多数SQL变体(包括MySQL)不擅长复杂的计算、实时数据处理、文件系统访问等。 另一方面,PHP在处理计算、日期和文件系统访问方面非常快。通过花一点时间,您甚至可以将PHP代码设计成只检索一次记录,然后在必要时存储的方式。
显然,使用您最熟悉的工具更有意义。 最后一点认为,仅仅因为钻头可以用来切割岩石,或者因为锤子可以用来驱动螺丝,这并不意味着它们应该被用于这些东西。有时,我认为程序员试图制造更强大的工具来完成所有事情,而不是制造更简单的工具来完成一件事情,这会造成更大的潜在损害。 |
![]() |
5
2
一个好的PHP应用程序应该是足够的,但请记住,它还要求您尽可能少地调用数据库。在PHP中存储稍后需要的值、缩短查询、缓存等。 MySQL优化始终是必须的,因为它还将减少PHP对数据库的调用,从而获得更好的性能。因此,如果您的目标是提高性能,那么就不能不考虑存储过程等。但是如果你的PHP代码做得不好(很多不必要的数据库调用),MySQL本身是不够的,这就是为什么我认为PHP必须编写得很好的原因,在开发过程中要记住漏洞过程,这样不必要的东西就不会碍事了。例如,在与MySQL的“二重奏”中,缓存对性能有很大的提升。 |
![]() |
6
0
我的观点是,即使在开发大型应用程序方面没有太多经验,出于某些原因,也会在DB中编写业务逻辑: 1-可维护性,我认为语言会在短时间内弃用函数并更改许多其他内容,因此如果PHP更改了版本,您将需要调整代码以适应新版本 2-DBs倾向于更稳定的语言,因此当新版本的RDBMS问世时,它通常不会改变您编写查询或SP的方式,甚至不会改变。在DB中编写逻辑将减少代码自适应,因为有了新的DB版本 3-RDBMS比编程语言更有可能长期存在。此外,由于您的数据至关重要,RDBMS开发人员非常担心将您的整个数据自动迁移到新的RDBMS版本,包括SPs。当clipper去世时,没有办法将系统迁移到一种新的编程语言,它们必须被完全重写。
我想从这里的其他人那里知道我所指出的是否有意义,如果没有,为什么。我的处境和萨宾·马利克一样,我正在考虑开始我的第一个大型项目,我倾向于SPs,因为我写的东西。所以,如果我的观点不正确的话,是时候纠正它了。 |
![]() |
7
-1
|