MySQL知识总结(缓存)
1.缓存机制概念
缓存机制简单的说就是缓存sql文本及查询结果,如果运行相同的sql,服务器直接从缓存中取到结果,而不需要再去解析和执行sql。如果表更改了,那么使用这个表的所有缓冲查询将不再有效,查询缓存值的相关条目被清空。更改指的是表中任何数据或是结构的改变,包括INSERT、UPDATE、DELETE、TRUNCATE、ALTER TABLE、DROP TABLE或DROP DATABASE等,也包括那些映射到改变了的表的使用MERGE表的查询。显然,这对于频繁更新的表,查询缓存是不适合的,而对于一些不常改变数据且有大量相同sql查询的表,查询缓存会节约很大的性能。
查询必须是完全相同的(逐字节相同)才能够被认为是相同的。另外,同样的查询字符串由于其它原因可能认为是不同的。使用不同的数据库、不同的协议版本或者不同 默认字符集的查询被认为是不同的查询并且分别进行缓存。
2.查询缓存相关参数
mysql> SHOW VARIABLES LIKE '%query_cache%';

3.简单的例子:
mysql> use zzlp;
mysql> show tables;

mysql> select count(*) from user;

#Qcache_hits表示sql查询在缓存中命中的累计次数,是累加值
mysql> SHOW STATUS LIKE 'Qcache_hits';

#连续查询两次
mysql> select count(*) from user;
mysql> select count(*) from user;

mysql> insert into user (id) select id from article; --插入数据后,跟这个表所有相关的sql缓存就会被清空掉
mysql> select count(*) from user;

mysql> SHOW STATUS LIKE 'Qcache_hits';

mysql> select count(*) from user;

mysql> select count(*) from user;
mysql> SHOW STATUS LIKE 'Qcache_hits';

MySQL知识总结(缓存)的更多相关文章
- MySQL知识树-查询语句
		在日常的web应用开发过程中,一般会涉及到数据库方面的操作,其中查询又是占绝大部分的.我们不仅要会写查询,最好能系统的学习下与查询相关的知识点,这篇随笔我们就来一起看看MySQL查询知识相关的树是什么 ... 
- Redis基础知识之—— 缓存应用场景
		转载原文:http://www.cnblogs.com/jinshengzhi/articles/5225718.html 一.MySql+Memcached架构的问题 Memcached采用客户端- ... 
- 两个容易被忽略的mysql知识
		原文:两个容易被忽略的mysql知识 为什么标题要起这个名字呢?commen sence指的是那些大家都应该知道的事情,但往往大家又会会略这些东西,或者对这些东西一知半解,今天我总结下自己在mysql ... 
- 使用redis和fastjson做应用和mysql之间的缓存
		第一次做这种javaweb的项目,难免还是要犯很多错误. 大概也知道,redis常常被用来做应用和mysql之间的缓存.模型大概是这样子的. 为了让redis能够缓存mysql数据库中的数据,我写了很 ... 
- 【MySQL】binlog缓存的问题和性能
		之前在没有备库的情况下,遇到过more than 'max_binlog_cache_size' bytes of storage 的错误,今天在主备复制的时候又遇到了这个问题 Last_SQL_Er ... 
- mysql的查询缓存模式介绍
		mysql的查询缓存 查询是数据库技术中最常用的操作.查询操作的过程比较简单,首先从客户端发出查询的SQL语句,数据库服务端在接收到由客户端发来的 SQL语句后, 执行这条SQL语句,然后将查询到的结 ... 
- SpringMVC+Mybatis+MySQL配置Redis缓存
		SpringMVC+Mybatis+MySQL配置Redis缓存 1.准备环境: SpringMVC:spring-framework-4.3.5.RELEASE-dist Mybatis:3.4.2 ... 
- Mysql 知识(2)
		1. 为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存.这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的.当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一 ... 
- MySQL的Innodb缓存相关优化
		MySQL的Innodb缓存相关优化 INNODB 状态的部分解释 通过 命令 SHOW STATUS LIKE 'Innodb_buffer_pool_%' 查看 Innodb缓存使用率 (I ... 
- mysql数据库查询缓存总结
		概述 查询缓存(Query Cache,简称QC),存储SELECT语句及其产生的数据结果.闲来无事,做一下这块的总结,也做个备忘! 工作原理 查询缓存工作原理如下: 缓存SELECT操作的结果集和S ... 
随机推荐
- 慕课网_Java入门第三季
			第1章 异常与异常处理 1-1 Java异常简介 (06:50) 1-2 Java中使用try..catch..finally实现异常处理 (05:08) import java.util.Input ... 
- zabbix使用脚本监控
			参照:http://www.cnblogs.com/zhongkai-27/p/9984597.html 
- ssm遇到的问题
			1. Caused by: java.lang.IllegalArgumentException at org.springframework.asm.ClassReader.<init> ... 
- beego 注解路由
			场景描述:使用注解路由,不起作用. 额外描述: 路由的添加都写在 main函数中了,同时未设置 beego.BConfig.RunMode ="dev"也未引入 :routers包 ... 
- C语言作业Ⅰ12
			一.我学到的内容 二.我的收获 时间 作业链接 我的收获 第一周 https://www.cnblogs.com/deng9/p/11576196.html#4369234 让我对这个专业有了新的认识 ... 
- CF140C New Year Snowmen(贪心+优先队列)
			CF140C 贪心+优先队列 贪心策略:每次取出数量最多的三种球,合成一个答案,再把雪球数都-1再插回去,只要还剩下三种雪球就可以不断地合成 雪球数用优先队列维护 #include <bits/ ... 
- 【转帖】docker 部署vsftpd服务
			docker 部署vsftpd服务 https://blog.csdn.net/ctwy291314/article/details/82012860 转帖学习一下 docker部署vsftpd服务 ... 
- Object的create、assign、getPrototypeOf与拷贝
			Object的create.assign.getPrototypeOf与拷贝:https://www.cnblogs.com/ninalei/p/8655567.html 
- C++:string操作函数
			要想使用标准C++中string类,必须要包含 #include <string>// 注意是<string>,不是<string.h>,带.h的是C语言中的头文件 ... 
- CodeForces-520E Pluses everywhere
			题目描述 给出一个长度为 \(n\) 的字符串,给出一个非负整数 \(k\),要求给这个字符串中间添加 \(k\) 个$\(+\)'号,变成一个表 达式,比如"\(1000101\)&quo ... 
