MySQL查询缓存设置 提高MySQL查询性能

    首先看看MSYQL逻辑框架:图片来自高性能mysql

    如果使用了QueryCache,当查询接收到一个和之前同样的查询,服务器将会从查询缓存中检索结果,而不是再次分析和执行相同的查询。这样就能大大提高查询性能。

    打开查询缓存,要通过几个步骤来设置:

    虽然你设置mysql允许查询缓存,但是如果你设置的查询缓存大小为了0,这和没有允许没什么区别。

    所以必须是几个步骤的设置才能真正打开查询缓存这个功能。

    下面演示最常用的设置查询缓存

    一、 query_cache_type 使用查询缓存的方式

    一般,我们会把 query_cache_type 设置为 ON,默认情况下应该是ON

    1. mysql> select @@query_cache_type;

    +--------------------+

    | @@query_cache_type |

    +--------------------+

    | ON |

    +--------------------+

    这样 当我们执行 select id,name from tableName; 这样就会用到查询缓存。在 query_cache_type 打开的情况下,如果你不想使用缓存,需要指明selectsql_no_cache id,name from tableName;

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

    当然也可以使用命令打开查询缓存:mysql> set session query_cache_type=on;

    这里我们不讨论这个,我们演示常用的设置。

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

    1. mysql> show variables like ‘have_query_cache‘;

    +------------------+-------+

    | Variable_name | Value |

    +------------------+-------+

    | have_query_cache | YES |

    +------------------+-------+

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

    三、 系统变量 query_cache_size

    表示查询缓存大小,也就是分配内存大小给查询缓存,如果你分配大小为0,

    那么 第一步 和 第二步 起不到作用,还是没有任何效果。

    1. mysql> select @@global.query_cache_size;

    +---------------------------+

    | @@global.query_cache_size |

    +---------------------------+

    | 16777216 |

    +---------------------------+

    上面是 mysql设置默认的,有的版本好像默认是0的,那么就要自己设置下。

    设置 set @@global.query_cache_size=100000; 这里是设置1M左右。

    再次查看下 select @@global.query_cache_size;

    显示我们设置新的大小,表示设置成功。

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

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

    MySql 可以设置一个最大的缓存值来限制缓存,当你查询缓存数结果数据超过这个值就不会进行缓存。缺省为1M,也就是超过了1M查询结果就不会缓存。

    1. mysql> select @@global.query_cache_limit;

    +----------------------------+

    | @@global.query_cache_limit |

    +----------------------------+

    | 1048576 |

    +----------------------------+

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

    好了,通过4个步骤就可以 打开查询缓存了,具体值的大小和查询的方式 这个按需求来设定!。

时间: 2024-10-10 16:26:09

MySQL查询缓存设置 提高MySQL查询性能的相关文章

MySQL查询缓存设置提高MySQL查询性能

首先看看MSYQL逻辑框架:图片来自高性能mysql 如果使用了QueryCache,当查询接收到一个和之前同样的查询,服务器将会从查询缓存中检索结果,而不是再次分析和执行相同的查询.这样就能大大提高查询性能. 打开查询缓存,要通过几个步骤来设置: 虽然你设置mysql允许查询缓存,但是如果你设置的查询缓存大小为了0,这和没有允许没什么区别. 所以必须是几个步骤的设置才能真正打开查询缓存这个功能. 下面演示最常用的设置查询缓存 一. query_cache_type 使用查询缓存的方式 一般,我

关闭mysql查询缓存query cache(用户测试性能)

先对query cache进行查询 mysql> show global variables like '%cache%'; 查看query_cache_size.query_cache_type的值 临时修改,重启后将还原默认. mysql> set global query_cache_size=0; mysql> set query_cache_type=0; 备注:query_cache_size是一个全局变量,必须加global:query_cache_type可加可不加 永久

MySQL之MySQL:prompt 设置 -登陆MySQL显示用户名和主机以及当前数据库

是开始但愿不是结束,是起点但愿不是终点 今天在做MySQL练习过程中,突然发现,登陆mysql后,命令行不能显示用户名和主机信息,同时呢,想查看数据库信息还需要查看select datebase()命令查看,特别不方便,因此特别查看了mysql的相关资料,每次通过客户端登陆怎么才能显示这些信息呢?其实MySQL的相关设置都在配置文件my.cnf中可以设置.因此就去看my.cnf文件,之前就使用下,没有细心看.my.cnf配置文件中两大部分:[client]和[mysqld],前者是客户端的配置参

应用MySQL读写分离以提高MySQL服务器的读写性能

  读写分离是借助MySQL中间件 ProxySQL 实现的  ProxySQL 有两个版本:官方版和percona版,percona版是基于官方版基础上修改C++语言开发,轻量级但性能优异(支持处理千亿级数据)具有中间件所需的绝大多数功能,包括: 多种方式的读/写分离 定制基于用户.基于schema.基于语句的规则对SQL语句进行路由 缓存查询结果 后端节点监控 准备   实现读写分离前,先实现主从复制   注意:slave节点需要设置read_only=1 主机 IP地址 类型 CentOS

mysql查询缓存打开、设置、参数查询、性能变量意思

http://blog.sina.com.cn/s/blog_75ad10100101by7j.html http://www.cnblogs.com/zemliu/archive/2013/08/03/3234372.html 第一: query_cache_type 使用查询缓存的方式 一般,我们会把 query_cache_type 设置为 ON,默认情况下应该是ON mysql> select @@query_cache_type;+--------------------+| @@qu

MySQL查询缓存打开、设置、参数查询、性能变量

query_cache_type 使用查询缓存的方式 一般,我们会把query_cache_type 设置为 ON,默认情况下应该是ON mysql> SELECT @@query_cache_type; +--------------------+ | @@query_cache_type | +--------------------+ | ON | +--------------------+ query_cache_type有3个值 0代表关闭查询缓存OFF,1代表开启ON,2(DEMA

RDS for MySQL查询缓存 (Query Cache) 的设置和使用

https://help.aliyun.com/knowledge_detail/41717.html?spm=5176.7841698.2.11.aCvOXJ RDS for MySQL查询缓存 (Query Cache) 的设置和使用 功能和适用范围 原理 限制 设置 验证效果 1. 功能和适用范围 功能: 降低 CPU 使用率 降低 IOPS 使用率(某些情况下) 减少查询响应时间,提高系统的吞吐量 适用范围: 表数据修改不频繁.数据较静态 查询(Select)重复度高 查询结果集小于 1

详解MySQL查询缓存

查询缓存是指存储使用SELECT语法查询到的返回到客户端的文本.当相同的请求再次发生时,会从查询缓存中获取数据,而非再执行一遍查询.查询缓存是共享Session会话的,所以一个客户端的请求可能与另一个客户端的请求得到相同的结果. 当服务器频繁收到相同的请求而数据库中的表数据变化频率又不高,查询缓存是非常有用的,它可以大大提高应用程序的访问效率.很多Web服务器利用这一原理基于数据库的内容动态生成页面. 查询缓存并不会返回过期的数据,当数据库中的表数据发生变化时,相关的查询缓存会自动清除.但是查询

MySQL加速查询速度的独门武器:查询缓存

[导读] 与朋友或同事谈到MySQL查询缓存功能的时候,个人喜欢把查询缓存功能Query Cache比作荔枝, 是非常营养的东西,但是一次性吃太多了,就容易上火而流鼻血,虽然不是特别恰当的比喻,但是有很多相似的地方.另外Query Cache有其特殊的业务场景,MySQL也不像其他数据库产品,缓存查询语句的执行计划等信息,而是直接缓存查询语句的结果集和对应的SQL语句.本文 就给大家介绍下查询缓存的相关知识,希望可以引导大家正确地使用Query Cache独门武器. 对MySQL查询缓存从五个角