从 MySQL 4.1 开始,增加了查询缓存(Query Cache,简称 QC)的功能,它会存储 select 语句的文本以及发送到客户端的结果。如果下一次收到一个相同的查询,就会从查询缓存中获得查询结果。
关于 QC 的详细定义,可以查询 MySQL 5.7 官方手册
那么是不是只要开启查询缓存就能提升查询速度呢?今天就一起探讨这一话题。
1 认识 QC
QC 需要缓存最新数据结果,因此表数据发生任何变化(insert、update、delete 等操作时),都会导致 QC 被刷新。
查询缓存相关的参数主要有:
show variables like “%query_cache%”;
这里解释一下上面几个参数
have_query_cache:服务器在安装时是否已经配置了高速缓存
query_cache_limit:单条查询能够使用的缓存区大小
query_cache_min_res_unit:查询缓存分配内存块的最小单位
query_cache_size:缓存区的大小,单位为 MB
query_cache_type:缓存类型,有三个值可选:
0 或者 off:关闭缓存
1 或者 on:打开缓存
2 或者 demand:只缓存带有 s