我用了很多时间,我知道 sql 查询和 sp 之间的区别,
SQL query will be compiled everytime it is executed.
Stored procedures are compiled only once when they are
executed for the first time.
这是一般的数据库问题
但一个很大的疑问是,
例如,
一个动态工作,即我将用户 ID 传递给 SP,然后 sp 将返回用户名、密码和完整详细信息,
所以对于这种情况,查询应该再次执行就知道了,那么有什么必要用 SP 而不是 SQL QUERY 呢,
请解开这个疑惑,
您好,感谢您的所有更新,
但我不想要优势,比较,
就说,
sp 如何执行,而我们使用动态工作,
例如,
如果传递userid 10那么sp也读取记录10,
如果我通过 14 那么,SP 再次查看 14 条记录,看到同样的工作 NORMAL SQL QUERY
正在做,但在那个时候执行和获取,所以我为什么要去 sp,
问候
最佳答案
存储过程,顾名思义,存储在数据库服务器上。它们会在您创建它们时传输到服务器并进行编译,并在您调用它们时执行。
另一方面,简单的 SQL 查询会在您每次使用它们时传输到服务器并进行编译。
因此传输巨大的查询(而不是简单的“执行过程”命令)和编译会产生开销,这可以通过使用存储过程来避免。
MySQL 与其他 RDBMS 一样,具有查询缓存。但这避免了仅编译,并且仅当查询与先前执行的查询完全相同时,这意味着如果您执行 2 次相同的查询,则不会使用缓存,例如,在 where 子句中使用不同的值。
关于database - 存储过程是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4172622/