mysql二级缓存开启,mybatis 开启使用 默认的 二级缓存

标题1, mybatis 默认二级缓存是没有开启的,

虽然网上说了,全部开启二级缓存是有风险和可能造成一些数据不一致性的问题。 但是有时候 查询的时候 ,特别是 循环 查询的时候, 会比较慢,这样时候使用二级缓存就 非常的好了,代码都不需要修改,效率会比较高。也不需要 使用 第三方的缓存的

如何开启二级缓存和使用呢

网上百度了一下,其实看到我有点 糊涂,到底应该怎样才算是开启呢,而且 我们不 应该全局开启二级缓存的, 这样 真的很容易出现问题,我们一般需要开启的是 某个 namespace 就是 某个 sql ,, xml 。 开启某个namespace 的二级缓存是 不需要 开启全局的二级缓存的,这个不要忽略了。

这里面说明一下 ,全局的二级缓存开启时这样的 ,默认 全局的二级缓存是 关闭的:

如何开启某个namespace 的二级缓存

这个才是重点,才是我们需要的。默认 namespace的 二级缓存也是关闭的 开启某个 namespace , ,, 如果我们开启了 全局的 二级缓存了,默认 所有的 namespace 的二级缓存都是开启的,这个不需要配置开启的,,, 在 全局的二级缓存没有开启的情况下,开启:

只需要 加上 就算开启了。。。

默认 整个 namespace 下面的 所有 select 查询都是 开启了 二级缓存的, 删除,更新,插入的时候, 整个 namespace 的二级缓存就被清空了,下次请求的时候回去 请求数据库,然后将 数据缓存下来的。

因为:

useCache="true" 默认都是 true的:

select id,name,upId from category where upId=#{id} AND del=0

当然如何我们 要某个select 不进行二级缓存可以设置 useCache="false " 就可以了。。。

即 只有 设置了,全局的二级缓存和 namespace的 二级缓存 : useCache="true" 才会生效的。

这里特别 说明一点,, namespace 对应的 model 必须实现序列化,否则二级缓存 会不成功的,甚至会报错:

Cause: java.io.NotSerializableException

实现序列化: xxx implements Serializable 即可

参考地址: http://www.jb51.net/article/109309.htm

以及

http://www.cnblogs.com/QQParadise/articles/5109633.html

MySQL没有官方支持的一级缓存二级缓存。引用中提到的一级缓存和引用中提到的二级缓存MyBatis框架中的缓存机制。MySQL自身并没有这样的缓存机制。在MySQL中,通常会使用MySQL自身的查询缓存来优化查询性能。 MySQL的查询缓存是一种基于SQL语句的缓存机制,它会将查询结果缓存在内存中以供后续查询使用。当执行一个查询语句时,MySQL会首先检查查询缓存是否有该查询的缓存结果,如果有,则直接返回缓存结果,而不需要再次执行查询操作。这可以大大提高查询性能。然而,MySQL的查询缓存机制存在一些缺陷,比如对于更新操作的表,如果执行了更新操作,那么相应的查询缓存将被清除,从而导致下一次查询无法命中缓存。 除了MySQL自身的查询缓存,还可以通过其他方式来实现缓存。比如,使用外部的缓存系统(如Redis、Memcached等)来缓存查询结果,或者在应用程序层面通过代码实现缓存。这些缓存方式可以提供更灵活、更可控的缓存机制,但也需要开发人员自行实现和管理。 总结来说,MySQL本身并没有一级缓存二级缓存的概念,但可以通过MySQL的查询缓存或其他缓存机制来提高查询性能和数据访问效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [mysql的一级缓存二级缓存](https://blog.csdn.net/qiuhui123456/article/details/98509360)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [MYSQL的一级缓存二级缓存](https://blog.csdn.net/qq_51250453/article/details/119582234)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值