MySQL Query Cache是mysql中的一个功能,主要是用来缓存和查询相关数据,本文文详细介绍如何开启MySQL中的Query Cache,以及Query Cache中的一些参数。

MySQL Query Cache的参数:

mysql> show variables like 'query_cache%';

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

| Variable_name | Value |

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

| have_query_cache | YES |

| query_cache_limit | 1048576 |

| query_cache_min_res_unit | 4096 |

| query_cache_size | 0 |

| query_cache_type | ON |

| query_cache_wlock_invalidate | OFF |

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

6 rows in set (0.00 sec)

1.query_cache_limit:允许使用MySQL Query Cache 的单条Query 结果集的最大容量,默认是1MB。当超过此参数设置的Query结果集大小的时候,MySQL将没有办法使用 Query Cache。

2.query_cache_min_res_unit:设置 Query Cache 中每次分配内存的最小空间大小,也就是每个Query 的Cache 最小占用的内存空间大小。

3.query_cache_size:Query Cache使用的内存大小,默认为0(其实就是没有使用Query Cache)。这个值必须是1024的整数倍,如果不是1024的整数倍,则调整为小一级的1024的整数倍。

4.query_cache_type:是否使用MySQL Query Cache的功能性开关,它有三种可能性的值

关闭MySQL Query Cache功能,任何情况下不会使用MySQL Query Cache功能。

开启MySQL Query Cache功能,仅当SELECT语句中使用SELECT SQL_NO_CANCHE时,不用Query Cache

开启MySQL Query Cache功能,仅当SELECT语句中使用SELECT SQL_CANCHE时,用Query Cache

5.query_cache_wlock_invalidate:当有写锁定发生在表上时,是否先失效该表相关的Query Cache。

如果设置为1(TRUE):则在写锁定的同时将失效该表相关的所有 Query Cache

如果设置为0(FALSE):则在锁定时刻仍然允许读取该表相关的 Query Cache

一、MySQL Query Cache状态值

mysql> show status like ‘%Qcache%’;

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

| Variable_name | Value |

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

| Qcache_free_blocks | 0 |缓存中有多少未被使用空闲的内存块

| Qcache_free_memory | 0 |可用的缓存空间

| Qcache_hits | 0 |缓存命中的次数

| Qcache_inserts | 0 |没有使用缓存的查询次数,也就是没有命中的次数

| Qcache_lowmem_prunes | 0 |由于内存不足导致被删除的缓存条目数量

| Qcache_not_cached | 0 |无法被缓存的查询的数量,这个值越小越好

| Qcache_queries_in_cache | 0 |当前被cache的查询数量

| Qcache_total_blocks | 0 |当前使用的内存块的数量

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

8 rows in set (0.00 sec)

二、如何设置MySQL Query Cache参数

1.开启query_cache_type

mysql> show variables like ‘%query_cache_type%’;

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

| Variable_name | Value |

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

| query_cache_type | OFF |

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

1 row in set (0.00 sec)

mysql> set @@global.query_cache_type = on;

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like ‘%query_cache_type%’;

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

| Variable_name | Value |

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

| query_cache_type | ON |

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

1 row in set (0.00 sec)

2.设置query_cache_size值大小

mysql> show variables like ‘%query_cache_size%’;

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

| Variable_name | Value |

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

| query_cache_size | 0 |

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

1 row in set (0.00 sec)

mysql> set @@global.query_cache_size = 2*1024*1024;

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like ‘%query_cache_size%’;

+——————+———+

| Variable_name | Value |

+——————+———+

| query_cache_size | 2097152 |

+——————+———+

1 row in set (0.00 sec)

3.查看MySQL Query Cache状态

mysql> show status like ‘%Qcache%’;

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

| Variable_name | Value |

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

| Qcache_free_blocks | 1 |

| Qcache_free_memory | 2086936 |

| Qcache_hits | 1 |缓存命中率增加1

| Qcache_inserts | 1 |

| Qcache_lowmem_prunes | 0 |

| Qcache_not_cached | 0 |

| Qcache_queries_in_cache | 1 |

| Qcache_total_blocks | 4 |

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

8 rows in set (0.00 sec)

这样就完成了开启Query Cache缓存的动作,下面就是一些常用的命令,可以不看!

4.清空MySQL Query Cache

1.Flush Query Cache

这个操作不会删除缓存的内容,它是把所有的存储块向上移动,把所有的空闲块向下移动合并到可用内存中去。它在运行时候会锁定整个服务器,阻止访问缓存,但通常这个操作很快,除非缓存的内容很大。

mysql> flush query cache;

Query OK, 0 rows affected (0.00 sec)

2.Reset Query Cache

清空查询缓存的命令。

mysql> show status like ‘%Qcache%’;

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

| Variable_name | Value |

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

| Qcache_free_blocks | 1 |

| Qcache_free_memory | 2086936 |

| Qcache_hits | 2 |

| Qcache_inserts | 1 |

| Qcache_lowmem_prunes | 0 |

| Qcache_not_cached | 0 |

| Qcache_queries_in_cache | 1 |

| Qcache_total_blocks | 4 |

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

8 rows in set (0.00 sec)

mysql> reset query cache;

Query OK, 0 rows affected (0.00 sec)

mysql> show status like ‘%Qcache%’;

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

| Variable_name | Value |

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

| Qcache_free_blocks | 1 |

| Qcache_free_memory | 2088472 |

| Qcache_hits | 2 |

| Qcache_inserts | 1 |

| Qcache_lowmem_prunes | 0 |

| Qcache_not_cached | 0 |

| Qcache_queries_in_cache | 0 |

| Qcache_total_blocks | 1 |

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

8 rows in set (0.00 sec)

mysql havequerycache_如何开启MySQL的中的Query Cache缓存相关推荐

  1. MySQL:动态开启慢查询日志(Slow Query Log)

    前言 在开发中,高效能的程序 也包括 高效能的查询,所以优化SQL也是程序员必要技能之一.要优化就必须要有慢日志记录才可以知道哪些查询慢,然后反向去修改 慢日志设置方式 写入文件 写入数据库 实践操作 ...

  2. mysql二进制日志开启方法_mysql中如何开启binlog?开启二进制日志文件?binary log?

    需求描述: 开启mysql的binlog即binary log日志功能,在此记录下. 版本描述: mysql版本:5.7.21-log 操作过程: 1.修改my.cnf并且将以下参数加入其中,重启my ...

  3. centos7查看mysql日志_centos7开启mysql日志

    centos7开启mysql日志 2018-09-28 405 在mysql配置文件(/etc/my.cnf)中写入: general_log=1 general_log_file=/log/gene ...

  4. mac mysql log_mac如何开启mysql bin-log

    vim /usr/local/etc/my.cnf添加以下配置expire_logs_days = 5 定期清理 log-bin = /usr/local/var/mysql/mysql_bin_lo ...

  5. mysql 3306_如何开启MySQL的3306端口?

    MySQL是一个关系型数据库管理系统.在我们用到数据库的时候不仅仅是在本机中使用该数据库.所以远程访问这个就需要了. 起初不知道这个原因,数据库就是连不上,之后才知道是因为数据库没有开放3306端口. ...

  6. 开启Mysql慢查询来优化mysql

    开启Mysql慢查询来优化mysql 优化sql语句是优化数据库的一个很重要的方面,那么怎么发现那些耗时耗资源的sql语句呢,开启Mysql慢查询! 1.查看是否开启慢查询,默认情况下是关闭的.你的m ...

  7. [MySQL FAQ]系列 — 线上环境到底要不要开启query cache

    Query Cache(查询缓存,以下简称QC)存储SELECT语句及其产生的数据结果,特别适用于:频繁提交同一个语句,并且该表数据变化不是很频繁的场景,例如一些静态页面,或者页面中的某块不经常发生变 ...

  8. MySQL在线环境,[MySQL FAQ]系列 — 线上环境到底要不要开启query cache

    Query Cache(查询缓存,以下简称QC)存储SELECT语句及其产生的数据结果,特别适用于:频繁提交同一个语句,并且该表数据变化不是很频繁的场景,例如一些静态页面,或者页面中的某块不经常发生变 ...

  9. mysql query cache

    1.概述: MySQL Query Cache 缓存客户端提交给MySQL的SELECT(注意只是select)语句以及该语句的结果集. 注意:query_cache是mysql server端的查询 ...

最新文章

  1. 为什么要选择useState而不是useReducer
  2. Android开发--BroadcastReceiver2
  3. 对抗神经网络,梦,潜意识
  4. C++ 类对象作为类成员
  5. C#实现字符串按多个字符采用Split方法分割得到数组
  6. 【在路上4】在派件时效分析中剥离有效因素
  7. Lua学习笔记(5): 表
  8. eclipse报错:“start ruble bundle manager”解决方法
  9. c/c++ static
  10. 决策树算法小结(一) ID3原理及代码实现
  11. Android – ListView 中添加按钮,动态删除添加ItemView的操作
  12. java属于什么语言_java是什么语言 ?是什么系统?
  13. 机器人潘森护盾_新版潘森无伤抗塔 还能抵消死歌大招?E技能护盾机制全解析!...
  14. 数据结构1800试题(第5章)
  15. 机器学习库Scikit-Learn(线性模型、岭回归、插入一列数据(insert)、提取所需列、向量机(SVM)、聚类)
  16. 实现支付功能并生成二维码
  17. 《方块方舟》自定义服务器工具,方舟方块世界服务器建立方法
  18. 计算机表格怎么加减乘除,在EX表格里怎么进行加减乘除法的计算
  19. Android 应用清单简介1
  20. nginx安装配置、Nginx支持php

热门文章

  1. linux定时器时间间隔为0,linux下定时器的使用--timer_create等系列
  2. html字段值换行代码怎么写,HTML段落,换行,字符实体
  3. ldflags android,Android 开发手记一 NDK编程实例
  4. c++已知2点求中垂线_呆哥数学函数合集——函数的概念【2】
  5. 上拉加载_如何用Vue + Mint UI实现上拉加载更多
  6. 华为隐藏功能扩大内存代码大全_发现将华为手机这3个功能打开,竟然可以将手机性能极限发挥...
  7. python 如何快速判断列表是否相同_python如何判断两个list是否相等
  8. JSON.toJSONString 出现 {$ref: “$.deduceGridCellVoSet[0].stateFlightsBasic[0]“}
  9. Apache Dubbo是一款高性能Java RPC框架。
  10. 苹果终端date命令_苹果M1 Mac电脑关闭SIP方法