Lea*_*ore 2 java mysql jdbc prepared-statement query-cache
我试图了解语句缓存在参数化准备语句的情况下是否有用。
据我的理解
我正在使用 JDBC/Snaq DB Pool/ MySQL 数据库。
这里的Statement Caching指的是两种不同的情况:
我的困惑很简单:
希望我能澄清我的问题。
小智 5
JDBC查询缓存是在数据库端完成的,它缓存execution plan参数的值是什么并不重要,只是它们每次的顺序都相同。如果这些值确实很重要,那么缓存任何东西就没有意义了。
很久以前,您必须使用PreparedStatements缓存来获取执行计划,但从 2005 年到 2008 年左右,所有值得一提的现代数据库都缓存执行计划,无论执行的语句类型如何。
存在一些代表PreparedStatement或 的实际 Java 对象的最小客户端缓存CallableStatement,但在现代驱动程序中,时间或空间上的任何实际节省都将是最小的JDBC。
在服务器端计算的开销比在客户端execution plan进行简单操作的开销大几个数量级。这意味着使用 a 在客户端String没有任何有意义的PreparedStatement性能优势,还有其他更重要的优势,例如SQL Injection保护来证明使用 a 的合理性。
| 归档时间: |
|
| 查看次数: |
3607 次 |
| 最近记录: |