数据库缓存

本文介绍了数据库的一级和二级缓存。一级缓存存在于每个session中,生命周期与session一致,能有效减轻数据库查询压力,但可能导致脏查询。二级缓存则在session factory级别,其生命周期与其一致,不过默认不启用,需要在配置文件中手动配置。
摘要由CSDN通过智能技术生成

数据库缓存:
    1) 一级缓存:
        每个数据库的session都一个与其对应的一级缓存.
        一级缓存的生命周期与对应的session一致.
        一级缓存是默认生效的

        作用: 会将session执行过的查询语句的结果自动保存到一级缓存中,
                当同一个session再执行相同的查询时, sql将不再执行,
                直接从一级缓存中提取之前的查询结果

        好处:减轻数据库的查询压力,如果这个session没有关闭,经常查询的数据可以直接从
            一级缓存中提取,不需要再到数据库中进行查询

问题: 缓存中的查询结果, 与真实状态的数据不一致 (脏查询)

为解决脏查询 , 可在下一条查询语句之前进行清理缓存

示例: 

package com.util;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class MyBatisUtil {
	private static SqlSessionFactory factory;

	static{//在静态代码块下,factory只会被创建一次
		System.out.println("static factory==============="
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值