本文介绍: MyBatis是一个流行的Java持久化框架,它提供了一个灵活的缓存机制来提高查询性能。MyBatis的缓存机制主要分为一级缓存和二级缓存。一级缓存是指在同一个SqlSession中,查询结果会被缓存起来,当再次执行同样的查询时,直接从缓存中获取结果,而不需要再次发起数据库查询。一级缓存是MyBatis默认启用的,可以通过配置来禁用。二级缓存是指多个SqlSession之间共享的缓存,它可以减少数据库的访问次数,提高性能。默认情况下,二级缓存是禁用的,需要手动配置开启。

MyBatis是一个流行的Java持久化框架,它提供了一个灵活的缓存机制来提高查询性能。

MyBatis的缓存机制主要分为一级缓存和二级缓存。

一级缓存是指在同一个SqlSession中,查询结果会被缓存起来,当再次执行同样的查询时,直接从缓存中获取结果,而不需要再次发起数据库查询。一级缓存是MyBatis默认启用的,可以通过配置来禁用。

二级缓存是指多个SqlSession之间共享的缓存,它可以减少数据库的访问次数,提高性能。默认情况下,二级缓存是禁用的,需要手动配置开启。可以使用一些第三方插件(比如EhCache或Redis)来实现二级缓存。

要启用二级缓存,需要在MyBatis的配置文件中配置相应的缓存配置。在映射文件中,可以使用<cache>标签来配置二级缓存的相关属性,比如缓存类型、缓存过期时间等。

Mybatis默认开启一级缓存,当在同一个会话中多次查询同一个语句,Mybatis会自动使用一级缓存获取查询结果。

由此可见,第二此次查询是从一级缓存中拿到的结果。

修改语句,将查询语句之间插入一条删除语句

  1. LRU(Least Recently Used):最近最少使用策略会驱逐最近最少被使用的对象。当缓存达到设定的大小上限时,将会移除最近最少被使用的对象。
  2. FIFO(First In, First Out):先进先出策略会按照对象最先进入缓存的顺序进行驱逐。当缓存达到设定的大小上限时,最先进入缓存的对象将会被移除。
  3. Soft References:软引用策略使用Java的软引用机制,当内存不足时,垃圾回收器会根据软引用对象的使用情况来回收内存。这样可以让缓存中的对象在内存不足时被回收,避免内存溢出。
  4. Time To Live(TTL):时间驱逐策略允许为缓存中的对象设置一个存活时间,在存活时间到期后,缓存中的对象将被驱逐。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注