MySQL查询缓存涉及多少参数

发布时间:2021-09-14 18:07 来源:亿速云 阅读:0 作者:柒染 栏目: Mysql 欢迎投稿:712375056

本篇文章给大家分享的是有关查询缓存涉及多少参数,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

查询缓存方面主要涉及两个参数,query_cache_size用于设置MySQL的查询缓存(query cache)大小,query_cache_type用于设置使用查询缓存的类型,
可以用以下命令查看具体使用情况:
mysql> show global status like 'qcache%';
+-------------------------+-----------+
| Variable_name           | Value     |
+-------------------------+-----------+
| Qcache_free_blocks      | 1         |
| Qcache_free_memory      | 195024544 |
| Qcache_hits             | 0         |
| Qcache_inserts          | 3         |
| Qcache_lowmem_prunes    | 0         |
| Qcache_not_cached       | 121       |
| Qcache_queries_in_cache | 1         |
| Qcache_total_blocks     | 4         |
+-------------------------+-----------+
8 rows in set (0.00 sec)
相关参数解释如下:
Qcache_free_blocks:缓存中相邻内存块的个数。数目大说明可能有碎片。flush query cache会对缓存中的碎片进行整理,从而得到一个空闲块。
Qcache_free_memory:缓存中的空闲内存。
Qcache_hits:多少次命中,通过这个参数可以查看query cache的基本命中效果。
Qcache_inserts:每次插入一个查询时就增大,命中次数除以插入次数就是非命中率。
Qcache_lowmem_prunes:多少条query因为内存不足而被清理出query cache,通过Qcache_lowmem_prunes和Qcache_free_memory参数相互结合,能够
更清楚地了解到系统中query cache的内存大小是否真的足够,是否非常频繁的出现因为内存不足而有query被换出的情况。
Qcache_not_cached:不适合进行缓存的查询数量,通常是由于这些查询不是SELECT语句或用了now()之类的函数。
Qcache_queries_in_cache:当前缓存的查询和响应数量。
Qcache_total_blocks:缓存中块的数量。
关于query_cache的配置:
mysql> show variables like 'query_cache%';
+------------------------------+-----------+
| Variable_name                | Value     |
+------------------------------+-----------+
| query_cache_limit            | 1048576   |
| query_cache_min_res_unit     | 4096      |
| query_cache_size             | 195035136 |
| query_cache_type             | ON        |
| query_cache_wlock_invalidate | OFF       |
+------------------------------+-----------+
5 rows in set (0.00 sec)


各个字段的解释如下:
query_cache_limit:超过此大小的查询将不再缓存。
query_cache_min_res_unit:缓存块的最小值。
query_cache_size:缓存大小值
query_cache_type:缓存类型,决定缓存什么样的查询。
query_cache_wlock_invalidate:表示当有其它客户端正在对MyISAM表进行写操作时,读请求是要等write lock释放资源后再查询还是允许直接
从query cache中读取结果,默认为FALSE
查询缓存碎片率=Qcache_free_blocks/Qcache_total_blocks * 100%
查询缓存利用率=(query_cache_size - Qcache_free_memory)/query_cache_size * 100%
查询缓存利用率在25%以下,说明query_cache_size设置的过大,可适当减小。
查询缓存命中率=(Qcache_hits - Qcache_inserts) / Qcache_hits * 100%

免责声明:本站发布的内容(图片、视频和文字)以原创、来自本网站内容采集于网络互联网转载等其它媒体和分享为主,内容观点不代表本网站立场,如侵犯了原作者的版权,请告知一经查实,将立刻删除涉嫌侵权内容,联系我们QQ:712375056,同时欢迎投稿传递力量。