mysql havequerycache_如何开启MySQL的中的Query Cache缓存
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缓存相关推荐
- MySQL:动态开启慢查询日志(Slow Query Log)
前言 在开发中,高效能的程序 也包括 高效能的查询,所以优化SQL也是程序员必要技能之一.要优化就必须要有慢日志记录才可以知道哪些查询慢,然后反向去修改 慢日志设置方式 写入文件 写入数据库 实践操作 ...
- mysql二进制日志开启方法_mysql中如何开启binlog?开启二进制日志文件?binary log?
需求描述: 开启mysql的binlog即binary log日志功能,在此记录下. 版本描述: mysql版本:5.7.21-log 操作过程: 1.修改my.cnf并且将以下参数加入其中,重启my ...
- centos7查看mysql日志_centos7开启mysql日志
centos7开启mysql日志 2018-09-28 405 在mysql配置文件(/etc/my.cnf)中写入: general_log=1 general_log_file=/log/gene ...
- 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 ...
- mysql 3306_如何开启MySQL的3306端口?
MySQL是一个关系型数据库管理系统.在我们用到数据库的时候不仅仅是在本机中使用该数据库.所以远程访问这个就需要了. 起初不知道这个原因,数据库就是连不上,之后才知道是因为数据库没有开放3306端口. ...
- 开启Mysql慢查询来优化mysql
开启Mysql慢查询来优化mysql 优化sql语句是优化数据库的一个很重要的方面,那么怎么发现那些耗时耗资源的sql语句呢,开启Mysql慢查询! 1.查看是否开启慢查询,默认情况下是关闭的.你的m ...
- [MySQL FAQ]系列 — 线上环境到底要不要开启query cache
Query Cache(查询缓存,以下简称QC)存储SELECT语句及其产生的数据结果,特别适用于:频繁提交同一个语句,并且该表数据变化不是很频繁的场景,例如一些静态页面,或者页面中的某块不经常发生变 ...
- MySQL在线环境,[MySQL FAQ]系列 — 线上环境到底要不要开启query cache
Query Cache(查询缓存,以下简称QC)存储SELECT语句及其产生的数据结果,特别适用于:频繁提交同一个语句,并且该表数据变化不是很频繁的场景,例如一些静态页面,或者页面中的某块不经常发生变 ...
- mysql query cache
1.概述: MySQL Query Cache 缓存客户端提交给MySQL的SELECT(注意只是select)语句以及该语句的结果集. 注意:query_cache是mysql server端的查询 ...
最新文章
- 为什么要选择useState而不是useReducer
- Android开发--BroadcastReceiver2
- 对抗神经网络,梦,潜意识
- C++ 类对象作为类成员
- C#实现字符串按多个字符采用Split方法分割得到数组
- 【在路上4】在派件时效分析中剥离有效因素
- Lua学习笔记(5): 表
- eclipse报错:“start ruble bundle manager”解决方法
- c/c++ static
- 决策树算法小结(一) ID3原理及代码实现
- Android – ListView 中添加按钮,动态删除添加ItemView的操作
- java属于什么语言_java是什么语言 ?是什么系统?
- 机器人潘森护盾_新版潘森无伤抗塔 还能抵消死歌大招?E技能护盾机制全解析!...
- 数据结构1800试题(第5章)
- 机器学习库Scikit-Learn(线性模型、岭回归、插入一列数据(insert)、提取所需列、向量机(SVM)、聚类)
- 实现支付功能并生成二维码
- 《方块方舟》自定义服务器工具,方舟方块世界服务器建立方法
- 计算机表格怎么加减乘除,在EX表格里怎么进行加减乘除法的计算
- Android 应用清单简介1
- nginx安装配置、Nginx支持php
热门文章
- linux定时器时间间隔为0,linux下定时器的使用--timer_create等系列
- html字段值换行代码怎么写,HTML段落,换行,字符实体
- ldflags android,Android 开发手记一 NDK编程实例
- c++已知2点求中垂线_呆哥数学函数合集——函数的概念【2】
- 上拉加载_如何用Vue + Mint UI实现上拉加载更多
- 华为隐藏功能扩大内存代码大全_发现将华为手机这3个功能打开,竟然可以将手机性能极限发挥...
- python 如何快速判断列表是否相同_python如何判断两个list是否相等
- JSON.toJSONString 出现 {$ref: “$.deduceGridCellVoSet[0].stateFlightsBasic[0]“}
- Apache Dubbo是一款高性能Java RPC框架。
- 苹果终端date命令_苹果M1 Mac电脑关闭SIP方法