Stored procedures a no-go in the php/mysql world?

前端 未结 10 1558
粉色の甜心
粉色の甜心 2020-12-29 06:53

I\'m quoting part of an answer which I received for another question of mine:

In the PHP/MySQL world I would say stored procedures are no-go

相关标签:
10条回答
  • 2020-12-29 07:08

    Do you have a specific need in mind which makes you consider them? Stored procedures are much less portable than "plain" SQL, that's usually why people don't want to use them. Also, having written a fair share of PL/SQL, I must say that the procedural way of writing code adds complexity and it's just not very modern or testable. They might be handy in some special cases where you need to optimize, but I'd certainly think twice. Jeff has similar opinions.

    0 讨论(0)
  • 2020-12-29 07:10

    I generally stay away from stored procedures because it adds load to the database which is 99% of the time, your biggest bottleneck. Adding a new php server is nothing compared to making your MySQL db replicate.

    0 讨论(0)
  • 2020-12-29 07:12

    I make limited use of stored procedures, and it works well. I am the lead dev for one of my companies clients, working on their e-comm website. The client has a stock system, we implemented a set of stored procedures on their system and built an API to communicate with it. This allowed us to abstract their database and they could implement logic in the stored procedures. Simple but met the business requirement very well.

    0 讨论(0)
  • 2020-12-29 07:16

    I develop and maintain a large PHP/MySQL application. Here is my experience with stored procedures.

    Over time our application has grown very complex. And with all the logic on the php side, some operations would query the database with over 100 short queries.

    MySQL is so quick that the performance was still acceptable, but not great.

    We made the decision in our latest version of the software to move some of the logic to stored procedures for complex operations.

    We did achieve a significant performance gain due to the fact that we did not have to send data back and forth between PHP and MySQL.

    I do agree with the other posters here that PL/SQL is not a modern language and is difficult to debug.

    Bottom Line: Stored Procedures are a great tool for certain situations. But I would not recommend using them unless you have a good reason. For simple applications, stored procedures are not worth the hassle.

    0 讨论(0)
  • 2020-12-29 07:19

    You should also be aware that stored procedures were not supported in Mysql before version 5.0. http://dev.mysql.com/doc/refman/5.0/en/stored-routines.html Also stored procedures tended to be be a bit weird in that implementation. Now that Mysql 5.1 is starting to crop up in the wild I see more use of stored procedures with Mysql.

    0 讨论(0)
  • 2020-12-29 07:23

    When using stored procedures with MySQL, you will often need to use the mysqli interface in PHP and not the regular mysql interface.

    The reason for this is due to the fact that the stored procedures often will return more than 1 result set. If it does, the mysql API can not handle it and will you get errors.

    The mysqli interface has functions to handling these multiple result sets, functions such as mysqli_more_results and mysqli_next_result.

    Keep in mind that if you return any result set at all from the stored procedure, then you need to use these APIs, as the stored procedure generates 1 result set for the actual execution, and then 1 additional one for each result set intentionally returned from the stored procedure.

    0 讨论(0)
提交回复
热议问题