1.查询缓存
很多数据库产品都能够缓存查询的执行计划,对于相同类型的SQL就可以跳过SQL解析和执行计划分成阶段。MySQL在某种场景下也可以实现,但是MySQL还有另一种不同的缓存类型来缓存完成的select查询结果,也就是查询缓存。
MySQL将缓存存放在一个引用表中,类似于HashMap的数据结构,Key查询SQL语句,Value查询结果。当发起查询时,会使用SQL语句去缓存中查询,如果命中则立即返回缓存中的结果集。

2.启用或禁用查询缓存
使用下面命令查看MySQL是否启用查询缓存。

show variables like '%query_cache%';

如下图所示,have_query_cache的值为YES,表示支持查询缓存。

8.查询缓存_缓存

MySQL8.0已删除查询缓存功能。
可以使用sql_no_cache在select中禁止缓存查询结果,例如:select sql_no_cache * from user;

8.查询缓存_查询缓存_02