-2

准备好的语句应该被认为是提高数据库性能的一种不如存储过程有效的方法是否正确,因为存储的过程会在会话中持续存在而准备好的语句不会?换句话说,准备好的语句会在每个会话中重新编译和缓存吗?

我意识到这个网站上有一些关于这个的问题,但似乎没有一个可以解决这个具体问题。除了关于这个特定问题之外,无需对比较发表评论。

4

1 回答 1

0

在很多情况下,性能差异可以忽略不计。

当存储过程执行多个 SQL 语句时,使用存储过程的真正性能节省来自减少到数据库的往返次数。

如果存储过程包装单个 SQL 语句,并且从应用程序调用它而不是单个 SQL 语句,那么 MySQL 不太可能有任何性能优势。(实际上,MySQL 调用存储过程可能需要做更多的工作。)

我们通常通过存储过程获得性能提升的地方是减少客户端执行的语句数量;也就是说,消除了一些语句“执行”调用。

于 2013-07-26T04:34:54.880 回答