博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
9.2. Buffering and Caching
阅读量:7078 次
发布时间:2019-06-28

本文共 2145 字,大约阅读时间需要 7 分钟。

查看缓存是否开启

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_CACHEThe query result is cached if it is cacheable and the value of the query_cache_type system variable is ON or DEMAND.SQL_NO_CACHEThe 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 系列 手札
本文作者:陈景峯
转载请与作者联系,同时请务必标明文章原始出处和作者信息及本声明。

你可能感兴趣的文章
让工作更高效,助力HR的5大云利器
查看>>
Java HashMap 核心源码解读
查看>>
需要更换DRaaS供应商的八个迹象
查看>>
网录科技CEO吕旭军:国内区块链产业时间紧迫感更强,很快会超美国
查看>>
创客总部陈荣根:做科技成果变现“第一站”
查看>>
《数字逻辑设计与计算机组成》一3.2 算术函数
查看>>
存储帮助Facebook 150万用户顺畅交友
查看>>
《OpenACC并行程序设计:性能优化实践指南》一 2.5 在多核系统中并行运行
查看>>
mybatis generator生成带有分页的Mybatis代码
查看>>
防火墙迁移:提高安全弹性与可用性的5种方法
查看>>
服务型存储市场的现状
查看>>
绿盟科技网络安全威胁周报2017.07 请关注OpenSSL拒绝服务漏洞CVE-2017-3733
查看>>
Qlik潘应麒:大数据时代下的现代分析学
查看>>
从技术上升到业务 混合云容灾提上日程
查看>>
云计算与网格计算的深入比较
查看>>
《VMware Virtual SAN权威指南》一2.3.3 二层或三层
查看>>
《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一1.1.2 计算机就业形势分析...
查看>>
同济大学博导陈明:解读中国制造2025
查看>>
中国少年儿童新闻出版总社CIO:快乐工作
查看>>
一款成熟的数据中心模型设计
查看>>