1.缓存的工作流程
缓存主要针对select查村语句作用的
1)第一次查询将数据写入缓存
2)第二次查询时,先看缓存中是否有,有,提取。
3)期间针对此缓存的任何insert/update/delet操作,都触发将缓存清空。
以mybatis的二级缓存为例,缓存流程都一样,不论一级缓存,还是二级缓存,抑或者缓存框架ehcache等。流程全一样:
Mybatis的一级缓存是指SqlSession。一级缓存的作用域是一个SqlSession。Mybatis默认开启一级缓存。
在同一个SqlSession中,执行相同的查询SQL,第一次会去查询数据库,并写到缓存中;第二次直接从缓存中取。当执行SQL时两次查询中间发生了增删改操作,则SqlSession的缓存清空。
Mybatis的二级缓存是指mapper映射文件。二级缓存的作用域是同一个namespace下的mapper映射文件内容,多个SqlSession共享。Mybatis需要手动设置启动二级缓存。
在同一个namespace下的mapper文件中,执行相同的查询SQL,第一次会去查询数据库,并写到缓存中;第二次直接从缓存中取。当执行SQL时两次查询中间发生了增删改操作,则二级缓存清空。