当前位置: 首页 > wzjs >正文

北京网站优化步骤国内免费推广产品的网站

北京网站优化步骤,国内免费推广产品的网站,广州网站优化排名推广,好看的标志设计1.MyBatis缓存 缓存可以将数据保存在内存中,是互联网系统常常用到的。目前流行的缓存服务器有 MongoDB、Redis、Ehcache 等。缓存是在计算机内存上保存的数据,读取时无需再从磁盘读入,因此具备快速读取和使用的特点。 和大多数持久化框架一…

1.MyBatis缓存

缓存可以将数据保存在内存中,是互联网系统常常用到的。目前流行的缓存服务器有 MongoDB、Redis、Ehcache 等。缓存是在计算机内存上保存的数据,读取时无需再从磁盘读入,因此具备快速读取和使用的特点。

和大多数持久化框架一样,MyBatis 提供了一级缓存和二级缓存的支持。默认情况下,MyBatis 只开启一级缓存。

1.1 一级缓存

一级缓存是基于 PerpetualCache(MyBatis自带)的 HashMap 本地缓存,作用范围为 session 域内。当 session flush(刷新)或者 close(关闭)之后,该 session 中所有的 cache(缓存)就会被清空。

在参数和 SQL 完全一样的情况下,我们使用同一个 SqlSession 对象调用同一个 mapper 的方法,往往只执行一次 SQL。因为使用 SqlSession 第一次查询后,MyBatis 会将其放在缓存中,再次查询时,如果没有刷新,并且缓存没有超时的情况下,SqlSession 会取出当前缓存的数据,而不会再次发送 SQL 到数据库。

由于 SqlSession 是相互隔离的,所以如果你使用不同的 SqlSession 对象,即使调用相同的 Mapper、参数和方法,MyBatis 还是会再次发送 SQL 到数据库执行,返回结果。

1.2 二级缓存

二级缓存是全局缓存,作用域超出 session 范围之外,可以被所有 SqlSession 共享。

一级缓存缓存的是 SQL 语句,二级缓存缓存的是结果对象。

1.3 二级缓存的配置

  • 1.MyBatis 的全局缓存配置需要在 mybatis.xml 的 settings 元素中设置,代码如下
<settings><setting name="cacheEnabled" value="true"/>
</settings>     
  • 2.在 mapper 文件(如 WebMapper.xml)中设置缓存,默认不开启缓存。需要注意的是,二级缓存的作用域是针对 mapper 的 namescape 而言,即只有再次在 namescape 内(net.biancheng.WebsiteMapper)的查询才能共享这个缓存,代码如下
<mapper namescape="org.example.mapper.StudentMapper"><!-- cache配置 --><cacheeviction="FIFO"flushInterval="60000"size="512"readOnly="true" />...
</mapper>      
  • 有关代码块中属性说明如下
属性说明
eviction代表的是缓存回收策略,目前 MyBatis 提供以下策略。LRU:使用较少,移除最长时间不用的对象;FIFO:先进先出,按对象进入缓存的顺序来移除它们;SOFT:软引用,移除基于垃圾回收器状态和软引用规则的对象;WEAK:弱引用,更积极地移除基于垃圾收集器状态和弱引用规则的对象。
flushInterval刷新间隔时间,单位为毫秒,这里配置的是 100 秒刷新,如果省略该配置,那么只有当 SQL 被执行的时候才会刷新缓存。
size引用数目,正整数,代表缓存最多可以存储多少个对象,不宜设置过大。设置过大会导致内存溢出。这里配置的是 1024 个对象。
readOnly只读,默认值为 false,意味着缓存数据只能读取而不能修改,这样设置的好处是可以快速读取缓存,缺点是没有办法修改缓存。
  • 3.在 mapper 文件配置支持 cache 后,如果需要对个别查询进行调整,可以单独设置 cache,代码如下。
<select id="select1" resultType="Student" usecache="true">...
</select>

对于 MyBatis 缓存仅作了解即可,因为面对一定规模的数据量,内置的 Cache 方式就派不上用场了,并且对查询结果集做缓存并不是 MyBatis 所擅长的,它专心做的应该是 SQL 映射。对于缓存,采用 OSCache、Memcached 等专门的缓存服务器来做更为合理。

1.4 一级缓存与二级缓存区别对比

对比项一级缓存二级缓存
作用域SqlSessionMapper 命名空间,跨会话共享
默认状态自动启用需手动配置
存储位置内存(PerpetualCache支持内存或第三方缓存框架
失效触发更新操作、会话关闭更新操作、容量超限、刷新间隔到期
适用场景同一会话内高频重复查询跨会话共享数据且更新频率低
数据一致性较高(会话内隔离)需谨慎处理(可能脏读)

2.总结

  • 一级缓存:适用于短会话内的高效查询,默认开启且无配置负担,但作用域有限。
  • 二级缓存:适合跨会话共享数据场景,需显式配置并关注数据一致性问题。
  • 选择建议:读多写少的数据(如配置表)可优先启用二级缓存;高并发写场景建议禁用或配合缓存失效策略使用
http://www.dtcms.com/wzjs/58946.html

相关文章:

  • 百度图片识别在线识图网站快速优化排名
  • 网页设计毕业论文答辩问题seo是什么意思知乎
  • 建设企业网站是静态还是动态好四川专业网络推广
  • 电子商务网站数据库怎么做广州最新疫情最新消息
  • 公司建设网站需要什么网络销售推广是做什么的具体
  • 网站底部导航栏做关键词优化
  • 企业 手机门户网站seo实战技巧
  • wordpress导航页美观百度seo排名优化软件
  • 昆明做烤瓷牙哪去柏德L网站网站快速排名优化哪家好
  • 动态网站设计的实训报告佛山网站快速排名提升
  • 杭州做销售去哪个网站好站长统计性宝app
  • 有什么网站可以帮人做模具吗南宁网站快速排名提升
  • 外贸网站制作设计山西疫情最新情况
  • 如何在网站做404页面自动seo优化
  • 关于加强网站信息建设的通知网站推广怎么做才有效果
  • 淘宝优惠卷网站怎么做网络推广一个月的收入
  • 网站建设 wordpress指数分布的分布函数
  • .net 网站开发教程中央常委成员名单
  • 网站推广该怎么做全部列表支持安卓浏览器软件下载
  • 网站风格一般具有哪三大特征怎么下载百度
  • 天津 网站制作搜索引擎优化有哪些要点
  • 网站建设常见问题seo服务外包
  • 西安网站建设专业公司如何网站推广
  • 技术支持 东莞网站建设母婴护理有了域名如何建立网站
  • 上海徐汇做网站百度推广关键词怎么优化
  • 常州市网站建设软文推广发布
  • 华为商城网站建设百度一下网页打开
  • 成都市建设委员会网站网店运营在哪里学比较好些
  • 如何做电影网站赚钱墨子学院seo
  • 网站设计软件有哪些西地那非片的功能主治