黑马程序员技术交流社区
标题:
【广州校区】【原创】 mybatis缓存概述
[打印本页]
作者:
新君
时间:
2019-10-24 09:17
标题:
【广州校区】【原创】 mybatis缓存概述
1问题引入
例如到了发工资那天,员工通过各种形式和条件在企业的工资管理系统中查询自己的工资情况,有的员工还会多次查询自己的工资,如果每次查询都找数据库的话, 轻则查询速度慢,重则数据库“死掉了”,那么遇到这种以查询为主的应用,有什么办法能提高查询速度,不让数据库“死掉”呢?答案是采用缓存策略。
2什么是缓存
缓存是一种以空间换时间的策略技术,它位于内存中,而数据库位于硬盘中,原理是将数据库中某部份常被使用的查询数据,装入缓存中,
那么将来如果数据没有变,直接从内存中获取数据即可,从而加快查询速度,提升查询性能。
3Mybatis中的缓存
Mybatis
提供了缓存策略,通过缓存策略可以减少查询数据库的次数,提升系统性能。在
Mybatis
框架中
缓存分为
一级缓存
和
二级缓存
。
一级缓存
:
一级缓存是
sqlSession
范围的缓存,
只能在同一个
sqlSession
内部有效
。它本身已经存在,一级缓存可以直
接使用。
当调用
SqlSession
的修改、添加、删除、提交、关闭等方法时,一级缓存
会被清空,
清空的目
的是为了让缓存中存放最新数据,避免脏读。
二级缓存:
二级缓存是
mapper
映射级别缓存,
作用范围跨越
SqlSession
,即可以在多个
SqlSession
之间共享二级缓存
数据。
只有在需要使
用的时候开启,可以避免资源的过度消耗。
4MyBatis中的缓存应用
1如果张三总喜欢根据工号查询自己的工资,而且以相同的条件查询多次,这时我们就可以为这个需求使用一级缓存来提升查询性能。
2如果所有员工总喜欢根据工号和月份查询自己的工资,而且以相同的条件查询多次,
这时我们就可以为这个需求使用二级缓存
来提升查询性能。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2