首页 > 数据库 >问题记录:MySQL查询第一次后获得结果后,再进行多次查询发现返回结果不变,执行到dao层不再执行sql

问题记录:MySQL查询第一次后获得结果后,再进行多次查询发现返回结果不变,执行到dao层不再执行sql

时间:2024-01-01 13:44:08浏览次数:37  
标签:返回 mapper 缓存 结果 dao 查询 二级缓存 sql

问题描述:查询MySQL数据库实时更新的数据,查询第一次后获得结果后,再进行多次查询发现返回结果不变,执行到dao层不再执行sql,问题原因是mapper文件中开启了二级缓存,获取一次结果后再次调用查询时直接从缓存中取,导致返回结果不能实时更新 直接放结论,是mybatis中的二级缓存问题

二级缓存区域是根据mapper的namespace划分的,相同namespace的mapper查询数据放在同一个区域,如果使用mapper代理方法每个mapper的namespace都不同,此时可以理解为二级缓存区域是根据mapper划分,也就是根据命名空间来划分的,如果两个mapper文件的命名空间一样,那样,他们就可以共享一个mapper缓存。        每次查询会先从缓存区域找,如果找不到从数据库查询,查询到数据将数据写入缓存。 Mybatis内部存储缓存使用一个HashMap,key为hashCode+sqlId+Sql语句。value为从查询出来映射生成的Java对象        sqlSession执行insert、update、delete等操作commit提交后会清空缓存区域。   flushInterval(刷新间隔)可以被设置为任意的正整数,而且它们代表一个合理的毫秒形式的时间段。默认情况是不设置,也就是没有刷新间隔,缓存仅仅调用语句时刷新。 size(引用数目)可以被设置为任意正整数,要记住你缓存的对象数目和你运行环境的可用内存资源数目。默认值是1024。 readOnly(只读)属性可以被设置为true或false。只读的缓存会给所有调用者返回缓存对象的相同实例。因此这些对象不能被修改。这提供了很重要的性能优势。可读写的缓存会返回缓存对象的拷贝(通过序列化)。这会慢一些,但是安全,因此默认是false。   一二级缓存开启与关闭

 

 

标签:返回,mapper,缓存,结果,dao,查询,二级缓存,sql
From: https://www.cnblogs.com/ashin1997/p/17938636

相关文章

  • Riak 的查询和索引: 如何实现高效的数据查询
    1.背景介绍Riak是一个分布式、可扩展的NoSQL数据库系统,它采用了分布式哈希表(DHT)技术来实现高性能和高可用性。Riak的查询和索引功能是其核心特性之一,它允许用户在大量数据中高效地查询和检索信息。在本文中,我们将深入探讨Riak的查询和索引功能,揭示其核心概念、算法原理和实际......
  • 如何在MySQL中对键值对表中的重复行进行多列排序?
    要在MySQL中对键值对表中的重复行进行多列排序,可以使用ORDERBY子句并指定多个列作为排序条件。以下是一个示例:假设有一个键值对表key_value,包含以下列:key_id、key_name、value。要对key_value表中的重复行按key_id和value进行排序,可以使用如下的SQL查询语句:SELECTkey_id,key_nam......
  • 使用 MYSQL 对列中特定范围的数字求和
    使用MySQL对列中特定范围的数字求和,可以使用SQL的SUM()函数结合WHERE子句来实现。以下是一个示例:SELECTSUM(column_name)ASsum_resultFROMtable_nameWHEREcolumn_name>=start_valueANDcolumn_name<=end_value;在上述代码中,将column_name替换为要计算求......
  • mysql导入导出sql文件
    MySQL新版本无法使用-p密码形式,可以在my.cnf中设置账号密码导出备份命令如下:mysqldump--defaults-extra-file=/etc/my.cnf数据库名>database.sql一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):1、导出数据和表结构:mysqldump-u用户名-p数据库名[表名......
  • 基于SSM的四六级报名与成绩查询系统
    互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对四六级报名信息管理混乱,出错率高,信息安全性差,劳动强度大,费时费力等问题,采用四六级报名与成绩查询系统可以有效管理,使信......
  • Oracle中查看隐含参数的sql
    selecta.ksppinm"Parameter",a.ksppdesc"Description",b.ksppstvl"SessionValue",c.ksppstvl"InstanceValue"fromx$ksppia,x$ksppcvb,x$ksppsvcwherea.indx=b.indxanda.indx=c.indxanda.ksppinmlike'%hb......
  • 《Android期末大作业:使用AndroidStudio开发图书管理系统APP(使用sqlite数据库)》
    AndroidStudio开发项目图书管理系统项目视频展示:引言现在是一个信息高度发达的时代,伴随着科技的进步,文化的汲取,人们对于图书信息的了解与掌握也达到了一定的高度。尤其是学生对于知识的渴求更是与日俱增。图书馆作为学生学习知识的重要场所,作为信息资源的集散地,图书和用户借阅资......
  • tdsql(pg版本)安装文档
    tdsql(pg版本)安装文档一、安装的前置条件:1、需要在开通oss机器的80和8080端口;2、准备NAS,大小为2T.二、安装前检查:1、部署DN节点的服务器数据盘必须是SSD,不能用HDD:通过cat/sys/block/sda/queue/rotational进行查看,返回值0即为SSD;返回1即为HDD。lsblk-d-oname,rota2、如果使......
  • TDSQL(PG版本)天巡系统安装与配置
    参考文档:https://doc.weixin.qq.com/doc/w3_AFwAeQZ3ACcJA0Z3mpITzyrQuymvJ?scode=AJEAIQdfAAoexq79g0AFwAeQZ3ACc安装前准备:1、需要下载安装包,包括:tbase-update.zip;2、天巡可以安装在虚拟机上面;3、需要提前确认如下信息:LTC编码(安灯局点库)tbase的jid:局点idtdmq的jid:局点id一、......
  • DNS查询的两种方式:递归查询和迭代查询
    1、递归解析 当局部DNS服务器自己不能回答客户机的DNS查询时,它就需要向其他DNS服务器进行查询。此时有两种方式,如图所示的是递归方式。局部DNS服务器自己负责向其他DNS服务器进行查询,一般是先向该域名的根域服务器查询,再由根域名服务器一级级向下查询。最后得到的查询结果返回给......