我刚刚添加 Memcached 作为 Hibernate 的第二层缓存。安装缓存后,性能实际上受到了重大影响。所有查询都会变慢。我意识到原因可能是由于我的大多数查询不是基于id,所以没有使用第二层缓存。
我的问题是,非基于 id 的查询不应该直接进入数据库而不访问缓存吗?也就是说,在命中缓存之前确定查询是否“适合缓存”的决策?如果是这样,性能不是应该更快吗?
最佳答案
当我检查 Hibernate 代码时,看起来 Hibernate 在使用 HQL 查询时无法重用缓存(它没有从 HQL 到其缓存机制的编译器)。
我建议您使用fjorm而不是 hibernate 。免责声明:我是 fjorm 的创始人。
关于mysql - 哪些 Hibernate 查询会命中第二层缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18545090/