mysql query cache_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 profiler_MySQL Query Profiler
查看MySQL语法详细执行时间与CPU/记忆体使用量: MySQL Query Profiler MySQL的SQL语法调整主要都是使用EXPLAIN,但是这个并没办法知道详细的Ram(Memory) ...
- 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 ...
- Procedure execution failed 2013 - Lost connection to MySQL server during query
1 错误描写叙述 Procedure execution failed 2013 - Lost connection to MySQL server during query 2 错误原因 由错误描写 ...
- 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,想试试 ...
- mysql优化之query优化
主要概述:在 MySQL 中有一个专门负责优化 SELECT 语句的优化器模块,这就是我们本节将要重点分析的 MySQL Optimizer,其主要的功能就是通过计算分析系统中收集的各种统计信息,为客 ...
- 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 ...
- Lost connection to MySQL server during query的几种可能分析
在使用navicat导出查询结果时,发现一段时间后就断开连接了,报错:[Msg] [Exp] 2013 - Lost connection to MySQL server during query 开 ...
- 解决Lost connection to MySQL server during query错误方法
昨天使用Navicat for MySQL导入MySQL数据库的时候,出现了一个严重的错误,Lost connection to MySQL server during query,字面意思就是在查询 ...
- 解决: 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. ...
- MySQL Packet for query is too large (xxx > xxx)...by setting the ‘max_allowed_packet‘ variable.的解决办法
问题概述 关于这个问题,博主是在项目上线生产运行的过程中遇到的,在一次运营部门的同事通知,系统功能操作出现异常,博主随即对问题展开排查和处理,通过后台日志发现,事务提交失败 " Could ...
最新文章
- ASP.NET Process Model之二:ASP.NET Http Runtime Pipeline - Part II
- java jar包搜索地址 and ADB 连接模拟器
- 太赫兹芯片是什么原理_太赫兹波养生鞋 芯片、鞋垫和材质的详细了解专利技术~太赫兹芯...
- 『ExtJS』01 009. ExtJS 4 方法重载
- linux内核设计与实现看不懂,Linux内核设计与实现读书笔记
- linux--exec函数族浅析
- Linux各个版本防火墙操作(CentOS Ubuntu)
- Python网络编程之socketserver实现多并发
- java 反射 构造器_Java之类的构造器(反射)
- 小程序商店刷榜_微信小程序店铺如何做引流,带来转化?
- openssl 加密解密
- 如何用文本文档编写python程序
- 简单的钓鱼网站的制作
- 软件工程标准与软件文档
- 计算机显卡升级不符,电脑升级之显卡篇:电脑显卡也有升级需要,但显卡不匹配也用不了...
- 国耀明医院互联网医院:儿童医保门诊不报销???你错啦!
- 网页上文件的上传和下载
- 在线识别图片文字,分享识别技巧
- vue-element-admin动态加载接口和报错解决
- stata的固定效应,控制时间和个体的语句
热门文章
- nginx(五)rewrite
- C#对config配置文件的管理
- ISP QoS Lab
- 4. 星际争霸之php设计模式--工厂方法模式
- FreeMarker笔记 前言第1章 入门
- HashMap get不出对象时出错 解决
- 实例应用 自定义页面taglib标签
- net自带二进制序列化,XML序列化和ProtoBuf序列化的压缩对比
- VBoxManage: error: Nonexistent host networking interface, name 'vboxnet0' (VERR_INTERNAL_ERROR)
- c++输入一个整数判断是否为完全平方数_matlab判断一个整数是完全平方数