MySQL查询缓存
MySQL Query Cache 就是用来缓存和 Query 相关的数据的。具体来说,Query Cache 缓存了我们客户端提交给 MySQL 的 SELECT 语句以及该语句的结果集。大概来讲,就是将 SELECT 语句和语句的结果做了一个 HASH 映射关系然后保存在一定的内存区域中。它不需要经过Optimizer模块进行执行计划的分析优化,更不需要发生同任何存储引擎的交互,减少了大量的磁盘IO和CPU运 算,所以有时候效率非常高。
缓存参数配置
1、 have_query_cache 查看当前的MySQL数据库是否支持查询缓存,YES代表支持。
2、 query_cache_type 查看当前MySQL是否开启了查询缓存 ,默认是关闭的。它的取值有3个:
值
含义
OFF或0
查询缓存功能关闭
ON或1
查询缓存功能打开,SELECT的结果符合缓存条件即会缓存,否则,不予缓存,显式指定SQL_NO_CACHE,不予缓存
DEMAND或2
查询缓存功能按需进行,显式指定 SQL_CACHE 的SELECT语句才会缓存;其它均不予缓存
3、query_cache_size 缓存使用的总内存空间大小,单位是字节,这个值必须是1024的整数倍。
4、query_cache_limit 允许缓存的单条查询结果集的最大容量,默认是1MB,超过此参数设置的查询结果集将不会被缓存;
5、query_cache_min_res_unit 分配内存块时的最小单位大小,设置查询缓存Query Cache每次分配内存的最小空间大小,即每个查询的缓存最小