zoukankan      html  css  js  c++  java
  • mybatis 梳理17--缓存 (占坑) 一级缓存、二级缓存、三级缓存

    1、为什么要用缓存?

    如果缓存中有数据,就不用从数据库获取,大大提高系统性能。

    mybatis提供一级缓存和二级缓存

    2、一级缓存:

    (1)一级缓存是sqlsession级别的缓存

    在操作数据库时,需要构造sqlsession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据

    不同的sqlsession之间的缓存区域是互相不影响的。

    (2)一级缓存工作原理:

    ①第一次发起查询sql查询用户id为1的用户,先去找缓存中是否有id为1的用户,如果没有,再去数据库查询用 户信息。得到用户信息,将用户信息存储到一级缓存中。

    ②如果sqlsession执行了commit操作(插入,更新,删除),会清空sqlsession中的一级缓存,避免脏读

    ③第二次发起查询id为1的用户,缓存中如果找到了,直接从缓存中获取用户信息

    ④mybatis默认支持并开启一级缓存。

    (3)一级缓存演示

                 

    (4)一级缓存失效

    1. sqlSession不同

    2. 当sqlSession对象相同的时候,查询的条件不同,原因是第一次查询时候一级缓存中没有第二次查询所需要的数据

    3. 当sqlSession对象相同,两次查询之间进行了插入的操作

    4. 当sqlSession对象相同,手动清除了一级缓存中的数据

  • 相关阅读:
    【Android
    【Android
    GeoIP的使用
    从30岁到35岁:为你的生命多积累一些厚度[转]
    editplus运行php 配置
    zend studio10 创建重复project from remote server
    《淘宝技术这10年》
    顶级程序员的10条最佳实践
    PHP_EOL 换行符
    尝试用Gearman实现分布式处理(PHP)[转]
  • 原文地址:https://www.cnblogs.com/Master-Sun/p/14313704.html
Copyright © 2011-2022 走看看