MySQL--query-cache
知识准备:
1、mysql 的query-cache是什么?
mysql可以把执行完成的select 语句和这个select 语句对应的结果集缓存起来;下次再用调用相同的select 语句时就直接返回结果,不是又去执行一次select 语句。
由于少了执行的这一步,所以返回结果比较快。mysql为了保证缓存的结果集与再执行一次select 语句时返回的结果集是一致的,所以;mysql会去判断select语句
用到的表是不有变更,如果有那么缓存的结果集就作废,为了得到正确的结果mysql只能是把select 语句再执行一次;
2、要注意的地方:
1、query-cache 是在各个session之间共享的。
2、query-cache 设置的过大那么它的维护成本也相应的变大,这个时候它反而会影响性能。
3、为了确认query-cache在当前业务场景下是否有用,最好的办法是测试;而且随着时间的推移,之前有用的query-cache不一定一直有用;
4、query-cache只有在select 语句完全相同而且表并没有变更的情况下才会从query-cache中返回结果集,注意这里的相同指的是字节序列
上的相同;也就是说select 和SELECT 会被当成两个不同的东西;select 和select 也有可能会被当成两个不同的东西,因为它们有可以用了
不同的字符集,而这一点我们人眼是看不出来的;
5、如果一个select 查询是某一查询的子查询,那么这个select 的结果也不会被缓存,也就是说query-cache只会缓存最终结果。
6、如果一个select 它是定义在stored function、event、trigger 中的那么它的结果集也不会被缓存。
7、就算是有可用的query-cache 结果集,用户的权限不对的话也不会有返回。
8、表的变更语句包括:insert ,update,delete,truncate table,alter table,drop table,drop database。
9、如果select 中包涵有不确定函数那么结果集也不会缓存。
配置query-cache:
1、have_query_cache 这个variable 用来检测query_cache是否开启,注意如果是二进制包安装的mysql这个值会永远是YES;所以这并没有什么卵用。
2、如果要关闭query_cache那么query_cache_size参数query_cache_type参数都要启动的时候设置为0。
3、query_cache_limit 控制一个结果集的最大大小是多少。
4、flush query cache 和reset query cache 用于清除query_cache ;它们两效果是等价的。
5、如果一个查询走的是query-cache 那么Qcache_hits 这个status 会加1、不然Com_select会加1。
MySQL--query-cache的更多相关文章
- MySQL Query Cache 相关的问题
最近经常有人问我 MySQL Query Cache 相关的问题,就整理一点 MySQL Query Cache 的内容,以供参考. 顾名思义,MySQL Query Cache 就是用来缓存和 Qu ...
- MySql Query Cache 优化
query cache原理 当mysql接收到一条select类型的query时,mysql会对这条query进行hash计算而得到一个hash值,然后通过该hash值到query cache中去匹配 ...
- mysql query cache 查询缓存
查看本博文,并进行验证(验证结果与博文一致): https://blog.csdn.net/carmazhao/article/details/7088530 mysql默认是开启查询缓存的. 设置查 ...
- MySQL 之 query cache
早上一打开网站,就看到了Percona官网发布的最新的关于 mysql query cache的文章: https://www.percona.com/blog/2015/08/07/mysql-qu ...
- MySQL Troubleshoting:Waiting on query cache mutex 腾讯数据库工程师:幕南风
http://blog.itpub.net/26515977/viewspace-1208188/ 今天被MySQL Query Cache 炕了.线上大量 Waiting on ...
- MySQL Troubleshoting:Waiting on query cache mutex
今天被MySQL Query Cache 炕了.线上大量 Waiting on query cache mutex 那么什么是 Query Cache? QC 缓存的是整个SELECT的结果集.而非执 ...
- mysql之Query Cache
1,QueryCache的实现原理: 1.目前只有select语句会被cache,其他类似show,use的语句则不会被cache. 2.两个SQL语句,只要相差哪怕是一个字符(例如大小写不一样:多一 ...
- 1011MySQL Query Cache学习笔记
转自:http://blog.chinaunix.net/uid-16844903-id-321156.html 测试环境 MySQL 5.5 innodb_version 1.1.6 MySQL Q ...
- 011-MySQL Query Cache 查询缓存设置操作
一.概述 MySQL Query Cache 会缓存select 查询,安装时默认是开启的,但是如果对表进行INSERT, UPDATE, DELETE, TRUNCATE, ALTER TABLE, ...
- MySQL 缓存 Query Cache
QueryCache(下面简称QC)是根据SQL语句来cache的.一个SQL查询如果以select开头,那么MySQL服务器将尝试对其使 用QC.每个Cache都是以SQL文本作为key来存的.在应 ...
随机推荐
- nodejs+express Mvc站点
nodejs+express Mvc站点 像asp.net Mvc一样开发nodejs+express Mvc站点 首先,我是个c#码农.从事Mvc开发已然4个年头了,这两年前端MVC的兴起,我也跟风 ...
- CTO这点事(技术,业务,管理,情商,周期,趋势)转
几乎整个互联网行业都缺 CTO,特别是一些草根背景的创业者,这个问题更加显著.从我自己的感受,身边各种朋友委托我找 CTO 的需求,嗯,算下来超过两位数了,光最近一个月就有 3 个,而且这三家都是刚拿 ...
- libeXosip2(2-1) -- eXosip2 configuration API
eXosip2 configuration API General purpose API. Data Structures struct eXosip_dns_cache struct eX ...
- mysql----用户root被删除或忘记root密码的解决方案
修改文件my.cnf,可用VIM打开,如:sudo vim /etc/my.cnf 在[mysqld]下加上一行: skip-grant-tables 保存文件,然后重启mysqld程序:sudo s ...
- UESTC_排名表 2015 UESTC Training for Graph Theory<Problem I>
I - 排名表 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit S ...
- UITableView系列(1)---Apple缓存池机制
一.概述 关于UITableView的基本使用, 其实十分简单.但是做App最重要的之一就是细致,技术方面要做到细致, 必须深入了解底层, 才能做出优化让程序跑得更快.那么这一系列文章从我实际项目中获 ...
- 《Java程序员面试笔试宝典》终于在万众期待中出版啦~
<Java程序员面试笔试宝典>终于在万众期待中出版啦~它是知名畅销书<程序员面试笔试宝典>的姊妹篇,而定价只要48元哦,恰逢求职季节,希望本书的出版能够让更多的求职者能够走进理 ...
- 游标的使用实例(Sqlserver版本)
游标,如果是之前给我说这个概念,我的脑子有二个想法:1.你牛:2.我不会 不会不是理由,更不是借口,于是便要学习,本人属性喜欢看代码,不喜欢看书的人,所以嘛,文字对我没有吸引力:闲话少说啊,给大家提供 ...
- python基础学习05(核心编程第二版)部分
# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #========== ...
- JS~重写alter与confirm,让它们变成fancybox风格
插件与系统命令 对于很多JS弹框插件来说,都提供了alter,confirm等功能,如fancybox,Boxy等插件,今天来介绍一下如何将系统的alter和confirm替换成指定插件的alter和 ...