从JDBC调用存储过程时的最佳实践

时间:2013-07-29 09:37:15

标签: mysql performance stored-procedures jdbc

我正在努力提高我的应用程序的性能,将多个查询调用组合到存储过程中。这将减少n / w流量,往返次数以及将数据处理逻辑与应用程序分开。

当我在这时,我正在考虑使用最有效的方式来做到这一点。

截至目前,我计划将PreparedStatementprepareCall方法结合使用。

如果有更好的方法,请建议。

我需要将许多IN params传递给程序,并且还需要OUT params代码JAVA

2 个答案:

答案 0 :(得分:0)

据我所知,没有“更好”的方式。您已经在整个应用程序中做了更好的事情。使用存储过程,而不是纯SQL。所以你得到了曲线。如果您真的受到了性能的压力,那么您可能还想查看数据库本身。缓存,索引等。从应用程序,您可以使用memcache,缓存层。但我猜这些不是你现在想要的。

答案 1 :(得分:0)

虽然您可以通过指导某些教程轻松回答您的问题,例如:从:

...我仍然想指出在MySQL中使用存储过程有很多警告。请考虑Bill Karwin's对此Quora问题的回答:

例如,第一期:

  

MySQL存储过程在会话第一次使用它们时进行编译 - 但编译后的版本会在会话结束时被丢弃。与Oracle或其他RDBMS品牌中的存储过程不同,后者使编译版本保持不变。这意味着MySQL会给程序增加很多开销,特别是如果你的模式是每个会话只调用一次过程。