您的位置:首页 > 数据库 > MySQL

Mysql中使用的查询缓存

2014-03-06 09:57 579 查看
MySQL 的查询缓存(MySQL Query Cache)是在4.1 版本以后新增的功能,它的作用是存

储SELECT 查询的文本以及相应结果。如果随后收到一个相同的查询,服务器会从查询缓存

中重新得到查询结果,而不再需要解析和执行查询。

查询缓存的适用对象是更新不频繁的表,当表更改(包括表结构和表数据)后,查询缓

存值的相关条目被清空。

查询缓存相关的参数主要有以下几个:

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 | OFF |

| query_cache_wlock_invalidate | OFF |

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

6 rows in set (0.00 sec)

对于以上几个参数,具体解释如下。

 have_query_cache 表明服务器在安装是否已经配置了高速缓存

 query_cache_size 表明缓存区大小,单位为M。

 query_cache_type 的变量值从0 到2,含义分别为:

0 或者off(缓存关闭)

1 或者on(缓存打开,使用SQL_NO_CACHE 提示的SELECT 除外)

2 或者demand(只有带SQL_CACHE 的SELECT 语句提供高速缓存)

通过SHOW STATUS 命令,可以监视查询缓存的使用状况,如下表所示。

表中 MySQL 查询缓存的性能监控参数

变量                                     含义

Qcache_queries_in_cache 在缓存中已注册的查询数目

Qcache_inserts                  被加入到缓存中的查询数目

Qcache_hits                       缓存采样数数目

Qcache_lowmem_prunes  因为缺少内存而被从缓存中删除的查询数目

Qcache_not_cached          没有被缓存的查询数目(不能被缓存的,或由于QUERY_CACHE_TYPE)

Qcache_free_memory        查询缓存的空闲内存总数

Qcache_free_blocks           查询缓存中的空闲内存块的数目

Qcache_total_blocks          查询缓存中的块的总数目 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: