mysql的SQL_NO_CACHE(在查询时不使用缓存)和sql_cache用法_weixin_34184561的博客-CSDN博客


本站和网页 https://blog.csdn.net/weixin_34184561/article/details/85987679 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

mysql的SQL_NO_CACHE(在查询时不使用缓存)和sql_cache用法_weixin_34184561的博客-CSDN博客
mysql的SQL_NO_CACHE(在查询时不使用缓存)和sql_cache用法
weixin_34184561
于 2018-05-06 09:10:00 发布
566
收藏
文章标签:
数据库
java
转自:http://www.169it.com/article/5994930453423417575.html
为了测试sql语句的效率,有时候要不用缓存来查询。
使用
SELECT
SQL_NO_CACHE ...
语法即可
SQL_NO_CACHE的真正作用是
禁止缓存查询结果,但并不意味着cache不作为结果返回给query。
目前流传的SQL_NO_CACHE不外乎两种解释:
1.对当前query不使用数据库已有缓存来查询,则当前query花费时间会多点
2.对当前query的产生的结果集不缓存至系统query cache里,则下次相同query花费时间会多点
我做了下实验,似乎两种都对。
sql_cache意思是说,查询的时候使用缓存。
对SQL_NO_CACHE的解释及测试如下:
SQL_NO_CACHE means that the query result is not cached. It does not mean that the cache is not used to answer the query.
You may use RESET QUERY CACHE to remove all queries from the cache and then your next query should be slow again. Same effect if you change the table, because this makes all cached queries invalid.
mysql> select count(*) from users where email = 'hello';
+----------+
| count(*) |
+----------+
| 0 |
+----------+
1 row in set (7.22 sec)
mysql> select count(*) from users where email = 'hello';
+----------+
| count(*) |
+----------+
| 0 |
+----------+
1 row in set (0.45 sec)
mysql> select count(*) from users where email = 'hello';
+----------+
| count(*) |
+----------+
| 0 |
+----------+
1 row in set (0.45 sec)
mysql> select SQL_NO_CACHE count(*) from users where email = 'hello';
+----------+
| count(*) |
+----------+
| 0 |
+----------+
1 row in set (0.43 sec)
================MyBatis的对CACHE的应用======================
MyBatis的flushCache和useCache的使用
转自:
http://blog.csdn.net/ssssny/article/details/52248960
(1)当为select语句时:
flushCache默认为false,表示任何时候语句被调用,都不会去清空本地缓存和二级缓存。
useCache默认为true,表示会将本条语句的结果进行二级缓存。
(2)当为insert、update、delete语句时:
flushCache默认为true,表示任何时候语句被调用,都会导致本地缓存和二级缓存被清空。
useCache属性在该情况下没有。
当为select语句的时候,如果没有去配置flushCache、useCache,那么默认是启用缓存的,所以,如果有必要,那么就需要人工修改配置,修改结果类似下面:
<select id="save" parameterType="XX" flushCache="true" useCache="false">
……
</select>
update 的时候如果 flushCache="false",则当你更新后,查询的数据数据还是老的数据。
关注博主即可阅读全文
weixin_34184561
关注
关注
点赞
收藏
评论
mysql的SQL_NO_CACHE(在查询时不使用缓存)和sql_cache用法
转自:http://www.169it.com/article/5994930453423417575.html 为了测试sql语句的效率,有时候要不用缓存来查询。使用SELECT SQL_NO_CACHE ...语法即可 SQL_NO_CACHE的真正作用是禁止缓存查询结果,但并不意味着cache不作为结果返回给query。 目前流传的SQL_NO_CACHE不外乎两种解释:...
复制链接
扫一扫
MySQL取消了Query Cache的原因
01-21
MySQL之前有一个查询缓存Query Cache,从8.0开始,不再使用这个查询缓存,那么放弃它的原因是什么呢?在这一篇里将为您介绍。
MySQL查询缓存是查询结果缓存。它将以SEL开头的查询与哈希表进行比较,如果匹配,则返回上一次查询的结果。进行匹配时,查询必须逐字节匹配,例如 SELECT * FROM t1; 不等于select * from t1;,此外,一些不确定的查询结果无法被缓存,任何对表的修改都会导致这些表的所有缓存无效。因此,适用于查询缓存的最理想的方案是只读,特别是需要检查数百万行后仅返回数行的复杂查询。如果你的查询符合这样一个特点,开启查询缓存会提升你的查询性能。
随着
Mysql性能优化案例研究-覆盖索引和SQL_NO_CACHE
12-15
场景
产品中有一张图片表pics,数据量将近100万条,有一条相关的查询语句,由于执行频次较高,想针对此语句进行优化
表结构很简单,主要字段:
代码如下:
user_id 用户ID
picname 图片名称
smallimg 小图名称
一个用户会有多条图片记录,现在有一个根据user_id建立的索引:uid,查询语句也很简单:取得某用户的图片集合:
代码如下:
select picname, smallimg from pics where user_id = xxx;
优化前
执行查询语句(为了查看真实执行时间,强制不使用缓存,为了防止在测试时因为读取了缓存造成对时间上的差别)
代码
参与评论
您还未登录,请先
登录
后发表或查看评论
Mybatis缓存
最新发布
weixin_54401017的博客
08-16
17
为了提高拓展性,Mybatis定义了缓存接口Cache。我们可以通过实现Cache接口来自定义二级缓存。Mybatis包含一个非常强大的查询缓存特性,它可以非常方便的定制和配置缓存。缓存可以极大的提升查询效率。默认情况下,只有一级缓存开启。(sqlsession级别的缓存,也称为本地缓存)一级缓存默认是开启的,只在一次sqlsession中有效,也就是拿到连接到关闭连接。二级缓存需要手动开启和配置,它是基于namespase级别的缓存。Mybatis系统中默认定义了两级缓存:一级缓存和二级缓存。...
mybatis查询缓存之一级缓存和二级缓存详细解析
eleven的博客
07-21
9993
一:本文将涉及到的如下几方面的知识点
mybatis基本增删改查
Java序列化和反序列化
JDBC和sqlsession基本理论
spring事务管理
二:mybatis查询缓存基本介绍
缓存:将相同查询条件的sql语句执行一遍后所得到的结果存在内存或者某种缓存介质当中,当下次遇到一模一样的查询sql时候不在执行sql与数据库交互,而是直接从缓存中获取结果,减少服务器的压力;
myb...
mybatis-缓存
weixin_43001336的博客
07-09
575
mybatis-缓存
MyBatis 缓存机制
qq_43843037的博客
12-25
33
MyBatis 缓存机制
缓存是一般的ORM 框架都会提供的功能,目的就是提升查询的效率和减少数据库的压力。跟Hibernate 一样,MyBatis 也有一级缓存和二级缓存,并且预留了集成第三方缓存的接口。
MyBatis 跟缓存相关的类都在cache 包里面,其中有一个Cache 接口,只有一个默认的实现类PerpetualCache,它是用HashMap 实现的。除此之外,还有很多的装饰器,通过这些装饰器可以额外实现很多的功能:回收策略、日志记录、定时刷新等等。
所有的缓存实现类总体上可分为三类:基本
mybatis mapper 代理,缓存
乌昂先生的博客
11-16
163
代理流程、
步骤1:创建对应的Mapper接口,和xml文件名一致
步骤2:编写对应的xxmapper.xml配置文件。有要求
1) mapper标签里面的namespace:必须写成对应的Mapper接口的路径名
2)sql语句里面的id:必须和接口中对应方法的名称一致。
3)sql语句里面的parameterType:必须要和接口中方法的形式参数数据类型一致
4)sql语句里面的resultType:必须...
【mybatis源码阅读】缓存与缓存原理
worn_xiao的博客
12-24
377
一 Mybaties查询缓存
mybatis提供查询缓存,如果缓存中有数据就不用从数据库中获取,用于减轻数据压力,提高系统性能。
Mybaties缓存模型
一级缓存是SqlSession级别的缓存。在操作数据库时需要构造 sqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据。不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响
mybatis的一级查询缓存
qq_40081577的博客
01-01
194
之所以需要查询缓存主要是为了提高查询访问速度,就是当用户执行一次查询后,会将该数据结果放到缓存中,当下次再执行此查询时就不会访问数据库了而是直接从缓存中获取该数据。 如果在缓存中找到了数据那叫做命中。 在mybatis中有一级缓存和二级缓存两种缓存方式。当一个 SqlSession 结束后,该 SqlSession 中的一级查询缓存也就不存在了。 myBatis 默认一级查询缓存是开启状态,且不能...
mysql让sql查询不走缓存的方法
AKA-5xx的博客
04-07
2909
查询时增加一个SQL_NO_CACHE指令
SELECT SQL_NO_CACHE field_1, field_2, ... from table_1;
mybatis查询缓存
庞凡 坚定自己踏实走好每一步
08-25
1211
1、查询缓存
缓存的作用:如果缓存中有数据就不用从数据库中获取,大大提高系统的响应速度和性能。
查询缓存:mybatis提供查询缓存,用于减轻数据库压力,提高数据库性能。
mybatis提供了一级缓存和二级缓存,他们之间的关系如下图
2、缓存范围
一级缓存(sqlsession级别的缓存)
在操作数据库时需要构造sqlse
mybatis 查询缓存问题
weixin_33894640的博客
09-23
134
<settings>
<setting name="localCacheScope" value="STATEMENT" />
</settings>
  
在mybatis框架中,在SqlSession未关闭之前,在一个session里面,如果执行相同的select语句,mybatis不会重新查询数据库,而是直接返回...
清除SQLSERVER查询缓存
weixin_34224941的博客
09-15
1173
我们在测试运行效率时,会发现第二次及以后所得到结果的时间比第一次远远短很多,这是由于SQLSERVER的缓存机制引起的。执行以下语句以清除缓存数据: DBCC FREEPROCCACHEDBCC DROPCLEANBUFFERS...
SSM框架:Mybatis 缓存问题
qq_50838572的博客
02-19
1299
一、什么是缓存
1.什么是缓存
存储在内存当中的数据
将用户常使用的数据存放在缓存(内存)当中,用户查询数据就不用从磁盘(关系型数据库文件)当中查询,从缓存当中查询,从而提高查询效率,解决了高并发系统的性能问题
2.为什么使用缓存
减少和数据库的交互次数,减少系统开销,提高系统效率
3.什么样的数据能使用缓存
经常查询并且不常改变的数据
二、Mybatis缓存
mybatis包含了一个非常强大的查询缓存特性,他可以非常方便的定制和配置缓存。缓存可以极大的提高查询的效率
mybatis系统当中默
MyBatis高级(分页插件、MyBatis缓存)
weixin_44742328的博客
04-18
159
目标:
1.MyBatis的分页插件【掌握】
2.MyBatis缓存【了解】
3.MyBatis注解【扩张掌握】
4.MyBatis逆向工程【掌握】
一、使用pageHelper插件完成分页
分页功能是非常常用的在我们实际开发中。
优点:
简化分页开发,提高开发效率
使用pageHelper可以轻松的更改数据库
企业使用的非常广泛
下载地址:
https://github.com/pageHelper/Mybatis-pageHelper
第一步:我们可以使用Maven进行配置,将依赖项添加到pom.x
Mybatis动态SQl及缓存
weixin_43916162的博客
01-07
89
目录动态SQLif标签choose (when, otherwise)标签trim (where, set)标签foreach标签缓存一级缓存二级缓存缓存原理图缓存失效条件
动态SQL
动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。
使用动态 SQL 并非一件易事,但借助可用于任何 SQL 映射语
Mybatis动态sql和缓存
weixin_40055163的博客
10-25
262
1.动态sql【重点】
1.右键点击File–>New–>Module,如图所示:
2.选择Java,并点击Next。如图所示:
3.填写项目名称,点击Finish。如图所示:
4.在sec目录下创建jdbc.properties的代码如下:
driver=com.mysql.cj.jdbc.Driver
username=root
password=123456
url=jdbc:mysql://192.168.64.128:3306/test?useUnicode=true&ch
sql-mybatis-多表查询不查的字段一定不要查
weixin_30826761的博客
09-28
332
在多表联查的时候,这时用的是左外联(即如果右边的没有就查出左边的表)
如果右边的没有,那么在Navicat中查询出如下图
而在mybatis中运用同样的查询语句时,查询出来字段的也是这样
这时如果左表和右表中有相同的字段,并且查出来了左表的该相同字段,这时会把左表和右表对应的实体类的该字段赋值,原本右表对应的实体类应该是空,在字段赋值之后就不为空了
转载于:https...
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:大白
设计师:CSDN官方博客
返回首页
weixin_34184561
CSDN认证博客专家
CSDN认证企业博客
码龄7年
暂无认证
151
原创
周排名
44万+
总排名
105万+
访问
等级
6734
积分
4982
粉丝
259
获赞
15
评论
1251
收藏
私信
关注
热门文章
通过Linux 日志查看系统异常原因(一)
12189
关于ASL(平均查找长度)的简单总结
12015
报错java.io.IOException: 系统找不到指定的路径
12008
VSCode代码格式化自动换行问题
11368
securecrt通过ssh连接板子: 密钥交换失败,没有兼容的加密程序
11147
最新评论
Angular路由复用策略RouteReuseStrategy(常用于实现Tab页签切换页面)
qq_20025505:
复用后的tab关闭后不会触发onDestroy,关闭时删除了快照
基于FPGA的视频格式转换系统设计
fishman1984:
我想把解码的一帧bt656格式数据保存到flash里面,供视频编码芯片还原怎么操作?
mybatis 表名做为参数
insistEveryDay:
号文要顶
bezierMaker.js——N阶贝塞尔曲线生成器
程序员june:
大佬,js库访问不了了
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
matlab练习程序(积分图)
Sql server 收缩日志
Magento 开发记录
2019年405篇
2018年667篇
2017年914篇
2016年538篇
2015年399篇
2014年304篇
2013年313篇
2012年237篇
2011年219篇
2010年161篇
2009年101篇
2008年82篇
2007年76篇
2006年43篇
2005年28篇
2004年6篇
目录
目录
最新文章
matlab练习程序(积分图)
Sql server 收缩日志
Magento 开发记录
2019年405篇
2018年667篇
2017年914篇
2016年538篇
2015年399篇
2014年304篇
2013年313篇
2012年237篇
2011年219篇
2010年161篇
2009年101篇
2008年82篇
2007年76篇
2006年43篇
2005年28篇
2004年6篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值