A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1问题引入
例如到了发工资那天,员工通过各种形式和条件在企业的工资管理系统中查询自己的工资情况,有的员工还会多次查询自己的工资,如果每次查询都找数据库的话, 轻则查询速度慢,重则数据库“死掉了”,那么遇到这种以查询为主的应用,有什么办法能提高查询速度,不让数据库“死掉”呢?答案是采用缓存策略。


2什么是缓存
缓存是一种以空间换时间的策略技术,它位于内存中,而数据库位于硬盘中,原理是将数据库中某部份常被使用的查询数据,装入缓存中,
那么将来如果数据没有变,直接从内存中获取数据即可,从而加快查询速度,提升查询性能。


3Mybatis中的缓存
Mybatis 提供了缓存策略,通过缓存策略可以减少查询数据库的次数,提升系统性能。在 Mybatis 框架中


缓存分为一级缓存二级缓存

一级缓存一级缓存是 sqlSession 范围的缓存,只能在同一个 sqlSession 内部有效。它本身已经存在,一级缓存可以直接使用。当调用 SqlSession 的修改、添加、删除、提交、关闭等方法时,一级缓存会被清空,清空的目的是为了让缓存中存放最新数据,避免脏读。
二级缓存:二级缓存是 mapper 映射级别缓存,作用范围跨越 SqlSession,即可以在多个 SqlSession 之间共享二级缓存数据。只有在需要使用的时候开启,可以避免资源的过度消耗。


4MyBatis中的缓存应用
1如果张三总喜欢根据工号查询自己的工资,而且以相同的条件查询多次,这时我们就可以为这个需求使用一级缓存来提升查询性能。
2如果所有员工总喜欢根据工号和月份查询自己的工资,而且以相同的条件查询多次,这时我们就可以为这个需求使用二级缓存来提升查询性能。



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马