MySql存储过程是否优于准备语句?

时间:2013-07-26 03:24:26

标签: mysql stored-procedures prepared-statement

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

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

1 个答案:

答案 0 :(得分:0)

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

使用存储过程实际节省的成本来自减少存储过程执行多个SQL语句时到数据库的往返次数。

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

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