准备好的语句应该被认为是提高数据库性能的一种不太有效的方法,而不是存储过程是正确的,因为存储过程会在会话中持续存在,而预准备语句却没有?换句话说,每个会话都会重新编译和缓存预准备语句吗?
我意识到本网站上有一些关于此的问题,但似乎没有一个问题可以解决这个问题。除了这个具体问题之外,无需对比较发表评论。
答案 0 :(得分:0)
在很多情况下,性能差异可以忽略不计。
使用存储过程实际节省的成本来自减少存储过程执行多个SQL语句时到数据库的往返次数。
如果存储过程正在包装单个SQL语句,并且正在从应用程序调用它而不是单个SQL语句,那么MySQL不太可能有任何性能优势。 (MySQL实际上可能需要做更多的工作来调用存储过程。)
我们通常使用存储过程获得性能提升会减少客户端执行的语句数量;也就是说,取消了一些语句“执行”调用。