当前位置: 首页 > news >正文

9.2. Buffering and Caching

查看缓存是否开启

		
MySQL> select @@query_cache_type;
MySQL> show variables like 'query_cache_type';
		
		

开启与关闭缓存

		
MySQL> set query_cache_type=on;
MySQL> set query_cache_type=off;
		
		

查看缓存状态

show variables like 'have_query_cache';
		

查询缓存的大小

		
MySQL> select @@global.query_cache_size;
MySQL> select @@query_cache_size;
		
		

查看最大缓存限制,如果集大于该数则不缓存。

		
MySQL> select @@global.query_cache_limit;
		
		

清除缓存/重置缓存

		
MySQL> flush tables;
MySQL> flush query cache;
MySQL> reset query cache;
		
		

查询缓存性能

		
MySQL> show status like 'qcache%';

MySQL> show status like 'qcache_q%';
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| Qcache_queries_in_cache | 1 |
+-------------------------+-------+
1 row in set (0.00 sec)

MySQL> show status like 'qcache_f%';
+--------------------+----------+
| Variable_name | Value |
+--------------------+----------+
| Qcache_free_blocks | 1 |
| Qcache_free_memory | 16766728 |
+--------------------+----------+
2 rows in set (0.00 sec)
		
		

9.2.1. Query Cache SELECT Options

Two query cache-related options may be specified in SELECT statements:

SQL_CACHE

The query result is cached if it is cacheable and the value of the query_cache_type system variable is ON or DEMAND.

SQL_NO_CACHE

The query result is not cached.

Examples:

SELECT SQL_CACHE id, name FROM customer;
SELECT SQL_NO_CACHE id, name FROM customer;


SELECT /*! SQL_NO_CACHE */ stuff FROM table

			

例 9.1. SQL_CACHE 测试

下面的例子中你将看到缓存变化

				
flush tables;
show status like 'qcache_q%';
select sql_cache * from members limit 5;
show status like 'qcache_q%';
select sql_cache * from members limit 10;
show status like 'qcache_q%';
				
				

显示当前缓存中的信息数量:

				
MySQL> show status like 'qcache_q%';
				
				
其中各个参数的意义如下:
Qcache_free_blocks:缓存中相邻内存块的个数。数目大说明可能有碎片。FLUSH QUERY CACHE会对缓存中的碎片进行整理,从而得到一个空闲块。
Qcache_free_memory:缓存中的空闲内存。
Qcache_hits:每次查询在缓存中命中时就增大
Qcache_inserts:每次插入一个查询时就增大。命中次数除以插入次数就是不中比率。
Qcache_lowmem_prunes:缓存出现内存不足并且必须要进行清理以便为更多查询提供空间的次数。这个数字最好长时间来看;如果这个 数字在不断增长,就表示可能碎片非常严重,或者内存很少。(上面的 free_blocks和free_memory可以告诉您属于哪种情况)
Qcache_not_cached:不适合进行缓存的查询的数量,通常是由于这些查询不是 SELECT 语句或者用了now()之类的函数。
Qcache_queries_in_cache:当前缓存的查询(和响应)的数量。
Qcache_total_blocks:缓存中块的数量。				
				





原文出处:Netkiller 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

相关文章:

  • golang 新人入门配置学习
  • 63. 搜索旋转排序数组 II
  • JAVA NIO知识点总结(6)——DatagramChannel
  • addEventListener()的第三个参数可以传对象了
  • 11.11. SNMP
  • [2018-01-08] Python强化周的第一天
  • Zabbix备份数据文件
  • Shell 输入/输出重定向
  • 通用汽车新增130辆测试无人车,配激光雷达
  • 了解Web及网络基础(二)
  • 拉格朗日插值
  • HomeBrew常规使用教程
  • 递归函数的写法笔记
  • mysql手写sql 建库建表示例
  • Eonasdan bootstrap datetimepicker 使用记录
  • 《深入 React 技术栈》
  • 【mysql】环境安装、服务启动、密码设置
  • 【知识碎片】第三方登录弹窗效果
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • CSS实用技巧干货
  • gf框架之分页模块(五) - 自定义分页
  • HomeBrew常规使用教程
  • JAVA SE 6 GC调优笔记
  • Java小白进阶笔记(3)-初级面向对象
  • KMP算法及优化
  • Linux快速复制或删除大量小文件
  • orm2 中文文档 3.1 模型属性
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • springboot_database项目介绍
  • 程序员最讨厌的9句话,你可有补充?
  • 将 Measurements 和 Units 应用到物理学
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 学习Vue.js的五个小例子
  • 原生JS动态加载JS、CSS文件及代码脚本
  • 阿里云API、SDK和CLI应用实践方案
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​插件化DPI在商用WIFI中的价值
  • ​渐进式Web应用PWA的未来
  • # centos7下FFmpeg环境部署记录
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (分类)KNN算法- 参数调优
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (全注解开发)学习Spring-MVC的第三天
  • (原創) 未来三学期想要修的课 (日記)
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .NET Remoting学习笔记(三)信道
  • .net的socket示例
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .net项目IIS、VS 附加进程调试
  • @angular/cli项目构建--Dynamic.Form
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • @我的前任是个极品 微博分析
  • []T 还是 []*T, 这是一个问题