查询缓存?BufferPool?
1、查询缓存
我们先了解下Mysql的层级划分
我们再了解下,Mysql5.6之前的查询流程(5.6默认禁用 8之后Mysql已经移除了查询缓存)
通过上面两个图我们可以给出下面关于查询缓存的定义
MySQL Server首选会从查询缓存中查看是否曾经执行过这个SQL,如果曾经执行过的话,之前执行的查询结果会以Key-Value的形式保存在查询缓存中。
key是SQL语句,value是查询结果
。我们将这个过程称为查询缓存!
根据层级我们可以看到 查询缓存是处于 server层的。
关于server层内容可以总结下
综合上述我们可以知道,查询缓存是将sql 以及查询结果以k-v的形式缓存起来,便于我们下次查询。
show variables like ‘%query_cache_type%’; // 查看是否开启查询缓存