知识准备:

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相关推荐

  1. mysql query profiler_MySQL Query Profiler

    查看MySQL语法详细执行时间与CPU/记忆体使用量: MySQL Query Profiler MySQL的SQL语法调整主要都是使用EXPLAIN,但是这个并没办法知道详细的Ram(Memory) ...

  2. python3 mysql错误 pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query')

    pymysql错误: pymysql.err.OperationalError: (2013, 'Lost connection to MySQL server during query') pymy ...

  3. Procedure execution failed 2013 - Lost connection to MySQL server during query

    1 错误描写叙述 Procedure execution failed 2013 - Lost connection to MySQL server during query 2 错误原因 由错误描写 ...

  4. android+mysql+server+error_Lost connection to MySQL server during query错误 | 学步园

    关于 Lost connection to MySQL server during query 错误2007年04月11日 星期三 00:56晚上在虚拟机上继续玩 Delphi for PHP,想试试 ...

  5. mysql优化之query优化

    主要概述:在 MySQL 中有一个专门负责优化 SELECT 语句的优化器模块,这就是我们本节将要重点分析的 MySQL Optimizer,其主要的功能就是通过计算分析系统中收集的各种统计信息,为客 ...

  6. MySQL Workbench出现:Error Code: 2013. Lost connection to MySQL server during query的问题解决

    MySQL Workbench出现:Error Code: 2013. Lost connection to MySQL server during query的问题解决 参考文章: (1)MySQL ...

  7. Lost connection to MySQL server during query的几种可能分析

    在使用navicat导出查询结果时,发现一段时间后就断开连接了,报错:[Msg] [Exp] 2013 - Lost connection to MySQL server during query 开 ...

  8. 解决Lost connection to MySQL server during query错误方法

    昨天使用Navicat for MySQL导入MySQL数据库的时候,出现了一个严重的错误,Lost connection to MySQL server during query,字面意思就是在查询 ...

  9. 解决: Error Code: 2013. Lost connection to MySQL server during query

    执行SQL语句: update  table_C, table_A  set table_C.colC = table_A.colA where table_A.anotherId= table_C. ...

  10. MySQL Packet for query is too large (xxx > xxx)...by setting the ‘max_allowed_packet‘ variable.的解决办法

    问题概述 关于这个问题,博主是在项目上线生产运行的过程中遇到的,在一次运营部门的同事通知,系统功能操作出现异常,博主随即对问题展开排查和处理,通过后台日志发现,事务提交失败 " Could ...

最新文章

  1. ASP.NET Process Model之二:ASP.NET Http Runtime Pipeline - Part II
  2. java jar包搜索地址 and ADB 连接模拟器
  3. 太赫兹芯片是什么原理_太赫兹波养生鞋 芯片、鞋垫和材质的详细了解专利技术~太赫兹芯...
  4. 『ExtJS』01 009. ExtJS 4 方法重载
  5. linux内核设计与实现看不懂,Linux内核设计与实现读书笔记
  6. linux--exec函数族浅析
  7. Linux各个版本防火墙操作(CentOS Ubuntu)
  8. Python网络编程之socketserver实现多并发
  9. java 反射 构造器_Java之类的构造器(反射)
  10. 小程序商店刷榜_微信小程序店铺如何做引流,带来转化?
  11. openssl 加密解密
  12. 如何用文本文档编写python程序
  13. 简单的钓鱼网站的制作
  14. 软件工程标准与软件文档
  15. 计算机显卡升级不符,电脑升级之显卡篇:电脑显卡也有升级需要,但显卡不匹配也用不了...
  16. 国耀明医院互联网医院:儿童医保门诊不报销???你错啦!
  17. 网页上文件的上传和下载
  18. 在线识别图片文字,分享识别技巧
  19. vue-element-admin动态加载接口和报错解决
  20. stata的固定效应,控制时间和个体的语句

热门文章

  1. nginx(五)rewrite
  2. C#对config配置文件的管理
  3. ISP QoS Lab
  4. 4. 星际争霸之php设计模式--工厂方法模式
  5. FreeMarker笔记 前言第1章 入门
  6. HashMap get不出对象时出错 解决
  7. 实例应用 自定义页面taglib标签
  8. net自带二进制序列化,XML序列化和ProtoBuf序列化的压缩对比
  9. VBoxManage: error: Nonexistent host networking interface, name 'vboxnet0' (VERR_INTERNAL_ERROR)
  10. c++输入一个整数判断是否为完全平方数_matlab判断一个整数是完全平方数