Php MySQL中的存储函数-值得做吗?
当我第一次进入数据库时,我使用的是SQL Server。我最初是用经典的ASP。我们被告知的一件大事是,如果您使用存储过程,而不是使用ASP SQL命令(我想是“在线”执行),那么您在SQL事务中节省了大量时间。因此,几乎所有我想对数据库做的事情,我都为其编写了一个存储过程,然后从代码中调用了该存储过程 总之,快进几年,我现在用PHP和MySQL(还有一点Python)完成所有工作。有一件事我似乎根本看不到,那就是人们在使用存储过程/函数,所以我并不真正担心它Php MySQL中的存储函数-值得做吗?,php,mysql,stored-procedures,stored-functions,Php,Mysql,Stored Procedures,Stored Functions,当我第一次进入数据库时,我使用的是SQL Server。我最初是用经典的ASP。我们被告知的一件大事是,如果您使用存储过程,而不是使用ASP SQL命令(我想是“在线”执行),那么您在SQL事务中节省了大量时间。因此,几乎所有我想对数据库做的事情,我都为其编写了一个存储过程,然后从代码中调用了该存储过程 总之,快进几年,我现在用PHP和MySQL(还有一点Python)完成所有工作。有一件事我似乎根本看不到,那就是人们在使用存储过程/函数,所以我并不真正担心它 然而,我突然意识到我只是做错了,并
然而,我突然意识到我只是做错了,并没有意识到这一点。在MySQL中使用存储函数有什么主要优势吗?我正在建立一个相当大的网站,处理大量的数据库调用。这些调用都是根据我的PHP代码完成的。对于我一直在进行的调用,我是否最好使用存储函数,然后从PHP向函数传递变量?这取决于具体情况。存储过程是处理功能分解的一种方法,如果有多个应用程序与同一数据库交互,则存储过程是绝对必要的。几年前,使用存储式procures实现所有功能的想法方兴未艾,随着世界向服务/RAD世界的转变,他们正在失去一些优势 存储过程的一些好处是
这与问“我应该将代码分解为方法/函数/过程并调用它们,还是应该将所有代码都编码到当前函数中?” 存储过程给您带来的一些优势:
我们对一切都使用存储过程。它工作得非常好。抽象是你的朋友。我认为还有另一个缺点:可伸缩性。数据库可能是架构中最难扩展的部分。这是可以做到的,但比添加几个PHP或Java服务器更具挑战性。因此,如果要考虑可伸缩性,您可能需要平衡将多少业务逻辑放在数据库服务器中,以及将哪些业务逻辑分散在web/app服务器中可以更好地扩展。那么版本控制呢?如果SQL在源代码中,对SQL的更改将存储在源代码存储库(SVN、CVS等)中。您是对的,如果SQL存储在应用程序的源代码中,那么管理起来就更容易了。Marvo,我们使用SQL Server、Oracle和Teradata,我们的DBA似乎能够很好地扩展数据库。“几年前”?多年来,我一直看到他们在衰落。