关于Mybatis缓存命中率的一己之见

影响缓存命中率的因素有很多,比如缓存太小,缓存的时间太短等都会影响缓存的命中率;但从本质上讲,影响缓存命中率的因素还是取决于缓存的粒度,缓存的粒度越小缓存的命中率也就越高,目前缓存粒度最小的是对象缓存(缓存粒度:在一些软件上,缓存粒度是可以自己设置的,而缓存粒度越小读取缓存的速度也就越快,当然这要视情况而论;比如说一个缓存粒度为512kb,而你只是需要读取一个4kb的缓存内容,那么由于缓存粒度关系,它会多读出508kb的缓存);而对于缓存来说,缓存命中率越高,缓存也就越好;在这里主要说的是Mybatis的缓存命中率一次测试,结果如下:

关于Mybatis缓存命中率的一己之见_第1张图片

由上面的测试可以得出一个结论:缓存命中率与读取缓存次数有关,如果不考虑缓存的清除等因素,读取缓存的次数越多缓存命中率也就越高(这里还涉及到了权重比)

这里顺带缓存读取的优先级:采用就近原则,由于一级缓存是存在于内存之中,而二级缓存存在于内存或硬盘之中,所以优先从一级缓存进行查找,如果没有再进入二级缓存,以此类推;最后如果缓存中没有,再按照程序运行从数据库中读取。

你可能感兴趣的:(学习资料)