第一次接触
最近开始接触大数据量查询的处理问题,用hibernate用习惯了,发现hibernate二级缓存非常重要但是用的人好像很少?
hibernate默认是不用二级缓存的。
?
这个就更感到奇怪了,为什么默认不开启二级缓存?
?
以ehcache为例,缓存分为几种:class级别缓存、查询缓存(好吧,我对着2种缓存还是不太理解。网上的资料也很感觉肤浅。。。)
?
?
ehcache一般不适用条件其中有一点:经常修改的数据。
?
以我的理解这一点完全可以忽略掉,因为修改的次数和查询的次数比起来根本就可以忽略不计,
ehcache开启查询缓存之后每次查询会去缓存中找一次如果没有就查数据库,如果数据库有更新这个缓存就是失效(失效的意思就是下次没有缓存直接去找数据库,并且再次缓存起来)
??
??
?如果你有10W条数据分页查找,虽然你只查第一页,如果你不用二级缓存那么hibernate会去查找一次所有记录返回这一页记录。
??
??
?用了二级缓存着根本就不会发送sql去麻烦数据库
??
??
以我的认知条件看来开启二级缓存永远比不开二级缓存有优势!!
即便是一旦数据发生更改缓存就失效,二级缓存的作用也是巨大的!!
?
不知道我的看法是否有误,还是说二级缓存会有事物等其他问题
?
还是说把精力都放到其他地方优化去了。