前言
缓存是对系统性能优化的重要手段。但是有经验的DBA都建议生产环境中把MySQL Query Cache关闭。MySQL8.0更是直接取消了查询缓存。
一键获取MySQL核心数据结构、底层实现原理、索引、事务、锁机制、MySQL性能优化案例、美团MySQL中间件等。
这是为什么?查询缓存在使用中遇到了什么坑?带着如下几个问题,我们正式进入本文。
- 什么是MySQL查询缓存?
- MySQL缓存规则。
- MySQL缓存的优缺点。
- MySQL缓存对性能的影响。
什么是查询缓存
MySQL体系架构
为了提高完全相同的Query语句的响应速度,MySQL Server会对查询语句进行Hash计算后,把得到的hash值与Query查询的结果集对应存放在Query Cache中。
如果没有匹配,将这个hash值存放在一个hash链表中,并将Query的结果集存放到cache中。
如果通过hash值匹配到了一样的Query,则直接将cache中相应的Query结果集返回给客户端。
目前MySQL Query Cache只会ca