php mysql 查询缓存_mysql 查询缓存使用详解

MySQL server 有一个重要的特征:查询缓存(Query Cache)。 当在使用中,查询缓存会存储一个 SELECT 查询的文本与被传送到客

户端的相应结果。如果之后接收到一个同样的查询,服务器将从查询缓存中检索结果,而不是再次分析和执行这个同样的查询。因而查询

需要严格的一致(字节对字节的),才会被认为是同样的。 另外,如果一个客户端使用一个新的连接协议格式或不同于其它客户端的另一个

字符集,一个查询将被视为不同的。

在某些表并不经常更改,而你又对它执行大量的相同查询时,查询缓存将是非常有用的。对于许多 WEB 服务器使用大量的动态信息,这

是一个很典型的情况。

如果一个表发生的改变 (INSERT, UPDATE, DELETE, TRUNCATE, ALTER 或 DROP TABLE|DATABASE),那么所有这张表使用的缓冲的

查询(可能通过一个 MRG_MyISAM 表!)将被得失效,并从缓冲中移除。

InnoDB 表的事务所做的更改将在一个 COMMIT 被完成时,使数据失效。

所以查询缓存绝不返回过期数据。当数据被修改后,在查询缓存中的任何相关词条均被转储清除。

MySQL server 有一个重要的特征:查询缓存(Query Cache)。 当在使用中,查询缓存会存储一个 SELECT 查询的文本与被传送到客户端的相应结果。如果之后接收到一个同样的查询,服务器将从查询缓存中检索结果,而不是再次分析和执行这个同样的查询。因而查询需要严格的一致(字节对字节的),才会被认为是同样的。 另外,如果一个客户端使用一个新的连接协议格式或不同于其它客户端的另一个字符集,一个查询将被视为不同的。

在某些表并不经常更改,而你又对它执行大量的相同查询时,查询缓存将是非常有用的。对于许多 WEB 服务器使用大量的动态信息,这是一个很典型的情况。

如果一个表发生的改变 (INSERT, UPDATE, DELETE, TRUNCATE, ALTER 或 DROP TABLE|DATABASE),那么所有这张表使用的缓冲的查询(可能通过一个 MRG_MyISAM 表!)将被得失效,并从缓冲中移除。

InnoDB 表的事务所做的更改将在一个 COMMIT 被完成时,使数据失效。

所以查询缓存绝不返回过期数据。当数据被修改后,在查询缓存中的任何相关词条均被转储清除。

打开查询缓存,是通过几个步骤来设置的。

第一: query_cache_type 使用查询缓存的方式

默认值:ON.

mysql> select @@query_cache_type;

+——————–+

| @@query_cache_type |

+——————–+

| ON |

+——————–+

这样 当我们执行 select id,name from tableName; 这样就会用到查询缓存。

在 query_cache_type 打开的情况下,如果你不想使用缓存,需要指明

select sql_no_cache id,name from tableName;

当然也可以禁用查询缓存: mysql> set session query_cache_type=off;

第二: 系统变量 have_query_cache 设置查询缓存是否可用

mysql> show variables like ‘have_query_cache’;

+——————+——-+

| Variable_name | Value |

+——————+——-+

| have_query_cache | YES |

+——————+——-+

上面的显示,表示设置查询缓存是可用的。

第三: 系统变量 query_cache_size

表示查询缓存大小,也就是分配内存大小给查询缓存,如果你分配大小为0,那么 第一步 和 第二步 起不到作用,还是没有任何效果。

mysql> select @@global.query_cache_size;

+—————————+

| @@global.query_cache_size |

+—————————+

| 16777216 |

+—————————+

上面是 mysql6.0设置默认的,之前的版本好像默认是0的,那么就要自己设置下。设置 set @@global.query_cache_size=1000000; 这里是设置1M左右,900多K。再次查看下 select @@global.query_cache_size;

+—————————+

| @@global.query_cache_size |

+—————————+

| 999424 |

+—————————+

显示我们设置新的大小,表示设置成功。如果你设置的查询缓存大小为了0,这和没有允许没什么区别

第四: query_cache_limit 控制缓存查询结果的最大值

例如: 如果查询结果很大, 也缓存????这个明显是不可能的。

MySql 可以设置一个最大的缓存值,当你查询缓存数结果数据超过这个值就不会

进行缓存。缺省为1M,也就是超过了1M查询结果就不会缓存。

mysql> select @@global.query_cache_limit;

+—————————-+

| @@global.query_cache_limit |

+—————————-+

| 1048576 |

+—————————-+

这个是默认的数值,如果需要修改,就像设置缓存大小一样设置,使用set重新指定大小。

如果你想测试并查看查询缓存效果:

执行同样的查询语句后,用如下命令查看下查询缓存信息

show status like ‘qcache%’

其他几个状态变量的意义:

Qcache_free_memory    表示查询缓存区现在还有多少的可用内存

Qcache_hits        表示查询缓存区的命中个数,也就是直接从查询缓存区作出响应处理的查询个数

Qcache_inserts    表示查询缓存区此前总过缓存过多少条查询命令的结果

Qcache_lowmem_prunes   表示查询缓存区已满而从其中溢出和删除的查询结果的个数

Qcache_not_cached    表示没有进入查询缓存区的查询命令个数

Qcache_queries_in_cache 查询缓存区当前缓存着多少条查询命令的结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521274.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

修改HBase的rowkey设计把应用的QPS从5W提升到50W

摘要: 正确设计Hbase的rowkey可以让你的应用飞起来,前提是你需要了解一些Hbase的存储机制。 UTT是Aliexpress的营销消息运营平台,运营希望促销活动时APP消息推送的QPS达到34W。 UTT刚接入APP消息推送时,QPS只能达到5W&#xff0…

BDTC 2019 | 15场分论坛,10分钟速览,5折票优惠,烧脑模式开启

2019中国大数据技术大会(BDTC)5折优惠票限时抢购啦,学生票仅售599元!扫描上图二维码或登录官网(https://t.csdnimg.cn/KSTh)了解更多最新大会详情。近日,在组委会公布大会部分重磅讲师和前沿议题…

我需要一个高并发的架构,我的系统要改造成微服务吗

摘要: 最近大家都在谈微服务,随着越来越多的在线业务需要提供更大并发的scale-up 和 scale out能力,微服务确实提供了比较好分布式服务的解决方案。 阿里云高级解决方案架构师 杨旭 世界最大混合云的总架构师,4年前,开…

linux6/7 下载、安装、配置JDK

文章目录1. JDK 下载2. 解压3. 配置环境变量4. 刷新配置文件5. 验证1. JDK 下载 wget https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz2. 解压 tar -zxvf jdk-8u202-linux-x64.tar.gz3. 配置环境变量 vim /etc/profile #java environment expo…

python工作目录_Python目录的基本操作

一、任务描述 本实验任务主要对Python目录进行一些基本操作,通过完成本实验任务,要求学生熟练掌握Python目录的基本操作,并对Python目录的基本操作进行整理并填写工作任务报告。 二、任务目标 1、掌握Python目录的操作 三、任务环境 Ubuntu16…

php mysql变量赋值给变量_MySQL_mysql 存储过程中变量的定义与赋值操作,一、变量的定义 mysql中变量定 - phpStudy...

mysql 存储过程中变量的定义与赋值操作一、变量的定义mysql中变量定义用declare来定义一局部变量,该变量的使用范围只能在begin...end 块中使用,变量必须定义在复合语句的开头,并且是在其它语句之前,也可以同时申明多个变量,如果需…

【建议收藏】数据中心服务器基础知识大全

戳蓝字“CSDN云计算”关注我们哦!作者 | Hardy责编 | 阿秃服务器对每个从事IT工作的人来说并不陌生,但是服务器所涉及的各种知识细节,并非大家都十分清楚,为了让大家深入了解服务器的关键知识点,笔者特意抽时间总结了…

一文了解阿里云CDN HTTP2.0

摘要: 本文由阿里视频云高级技术专家空见撰写,主要介绍HTTP2.0的历史、特性、如何使用和使用之后的性能对比验证。 背景介绍 要了解HTTP2.0,先了解一下HTTP超文本传输协议的历史(HyperText Transfer Protocol)&#…

VMVare 虚拟机使用桥接模式

VMVare 虚拟机使用桥接模式,和物理机使用同一个物理网卡,和物理主机使用同一个段的ip。 文章目录1. VMware 编辑 > 虚拟网络编辑器2. 更改配置3. 编辑名称为VMnet0 的网络4. 编辑虚拟机的网络适配器5. 编辑虚拟机的网络适配器6. 再启动虚拟机1. VMwar…

阿里云基于NVM的持久化高性能Redis数据库

摘要: 背景 Redis作为一款简洁、高效的开源K/V数据库,可以被用于内存缓存、持久化存储等不同场景,大量服务于各类互联网应用。同时也提供了丰富的功能配置,客户可以根据各自业务需求,在读写性能、缓存容量、数据可靠性…

rgss加密文件解包器_Unity AssetBundle高效加密案例分享

这是侑虎科技第585篇文章,感谢作者江鱼供稿。欢迎转发分享,未经作者授权请勿转载。如果您有任何独到的见解或者发现也欢迎联系我们,一起探讨。(QQ群:793972859)作者主页:https://www.zhihu.com/…

阿里云DTS大幅降价,低至400元即可获得实现秒级延迟的数据传输服务

为了释放更多技术红利,进一步普惠广大客户和开发者,阿里云7月上旬宣布数据传输服务(Data Transmission Service,简称DTS) 数据同步功能降价,最高降价幅度高达40%。中国大陆,最低单价低至400元/月,跨境专线同步&#xf…

【又是一波重点】深度解析服务器科普知识 | CSDN博文精选

戳蓝字“CSDN云计算”关注我们哦!作者 | Hardy晗狄转自 | CSDN博客责编 | 阿秃服务器是网络数据的节点和枢纽,是一种高性能计算机,存储、处理网络上80%的数据、信息,负责为网络中的多个客户端用户同时提供信…

Linux下启动/关闭Oracle服务和 oracle监听启动/关闭/查看状态

文章目录一、Linux下启动Oracle 二步曲1)启动监听2)启动数据库实例二、Linux下启动Oracle 实战操作2.1. 登录服务器,切换到oracle用户,或者以oracle用户登录2.2. 打开监听服务2.3. 以SYS用户身份登录Oracle2.4. 通过startup命令启…

python中idle怎么打开_为什么我的python脚本只打开IDLE?

我不明白为什么运行我的Python程序只会打开IDLE. 不确定在SuperUser上是否更合适,但可以使用以下方法:我无法从命令行运行python脚本. OSX 10.7.4,全新安装python 3.2.3.我有以下python脚本作为test.py: #! /usr/bin/env python print("hello world…

【公测中】阿里云发布国内首个大数据双活容灾服务,满足高要求大数据灾备场景

在6月上旬举行的云栖大会上海峰会上,阿里云发布了国内首个大数据集群双活容灾产品-混合云容灾服务下的混合云大数据容灾服务(HDR for Big Data, 简称 HDR-BD),并已经在7月份开始邀测。HDR-BD采用业界领先的数据双向实时复制技术&a…

mysql多源gtid复制_mysql的GTID复制和多源复制

配置基于GTID的复制--------------------------------------------在参数文件/etc/my.cnf增加下面内容:主库master_info_repositoryTABLErelay_log_info_repositoryTABLElog-slave-updatestruegtid-modeonenforce-gtid-consistencytruesync-master-info1slave-paral…

linux CentOS7 最小化安装环境静默安装Oracle11GR2数据库(安装操作系统环境_01)

文章目录最小化安装 linux CentOS7我使用的镜像包:CentOS-7-x86_64-DVD-1810.iso虚拟机就创建好了 通过方向键选择:install centos 7 回车 直接点击:continue 这里采用自动分区,手动自定义分区请参考 网络设置方式有2种 第一种…

阿里云发布vSphere虚拟机备份服务 ,网络带宽有限条件下依然能有效保护数据

在6月上旬举行的云栖大会上海峰会上,阿里云发布了vSphere虚拟机备份上云服务(HBR for vSphere),并已经在7月份开始邀测。利用混合云备份服务可以将虚拟机镜像备份上云,避免了传统备份方案复杂的软件部署,存…

行!人工智能玩大了!程序员:太扯,阴谋!你怎么看?

人工智能真的玩大了吗?人工智能行业的人才真的“爆发了?”AI程序员究竟怎么样?A与B 薪酬与前景程序员与远方2017年~2018年,是人工智能大火的时候。你会发现,跟朋友聊天不谈人工智能,聊天的bigger都上不去。…