什么是查询缓存
很多数据库产品都能够缓存查询的执行计划,对于相同类型的SQL就可以跳过SQL解析和执行计划分成阶段。MySQL在某种场景下也可以实现,但是MySQL还有另一种不同的缓存类型:缓存完成 的SELECT查询结果,也就是查询缓存。
MySQL将缓存存放在一个引用表中,类似于HashMap的数据结构,Key查询SQL语句,Value则是查询结果。当发起查询时,会使用SQL语句去缓存中查询,如果命中则立即返回缓存的结果集。
- 可以使用 SQL_NO_CACHE 在 SELECT 中禁止缓存查询结果,例如:SELECT SQL_NO_CACHE …
- MySQL 8.0已删除查询缓存功能
mysql> show variables like '%query_cache%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| have_query_cache | NO |
+------------------+-------+
1 row in set (0.01 sec)
mysql>