MySQL 的查询缓存由于“它造成的问题比解决问题要多的多”,所以从 MySQL8.0 起已被移除。
通过 SHOW VARIABLES
可以看到参数 have_query_cache = NO
即表示系统不支持 Query Cache
Query Cache 缓存的是整个 SELECT 的结果集、而非执行计划,而且 Query Cache 简单粗暴的失效策略、令人蛋疼、任何不同(空格、TAB缩进、DML等)都会导致与该表有关的全部缓存无效并删除缓存。
失效通过single mutex 控制、有比较严重的锁竞争
如果使用的是 MySQL8 之前的版本,可以通过修改以下两个参数关闭:
query_cache_type = off
query_cache_size = 0
如果确实有这个缓存需求,建议使用效率更高的 Redis 或者 Memcached 等替代。
想要了解更多关于 Query Cache 的参考 https://blog.csdn.net/yongqi_wang/article/details/86674088