我刚刚将Memcached添加为Hibernate的第二层缓存。安装缓存后,性能实际上受到重创。所有查询都较慢。我意识到原因可能是由于我的大多数查询都不是基于id,所以没有使用第二层缓存。
我的问题是,非基于id的查询是否应该直接进入数据库而不会访问缓存? Aka,在点击缓存之前确定查询是否“缓存适当”的决策?如果是这样,性能不应该更快吗?
答案 0 :(得分:0)
当我检查Hibernate代码时,看起来Hibernate在使用HQL查询时无法重用缓存(它没有从HQL到其缓存机制的编译器)。
我建议您使用fjorm代替Hibernate。免责声明:我是fjorm的创始人。