很多数据库产品都能缓存查询的执行计划,对于相同类型的 SQL 就可以跳过 SQL 解析和执行计划生成阶段。 MySQL 在某种场景下也可以实现,但是 MySQL 还有另一中不同的缓存类型:缓存完成的 SELECT 查询结果,也就是查询缓存。 MySQL 将缓存存放在一个引用表中,类似 HashMap 的数据结构, Key 查询 SQL 语句, Value 则是查询结果。当发起查询时,会使用 SQL 语句去缓存中查询,如果命中则立即返回缓存的结果集。
Tip:
show variables like '%query_cache%';
语句获取是否开启了查询缓存,在 MySQL 中默认查询缓存是开启的;SELECT SQL_NO_CACHE...
;