根据 局部性原理, MySQL Query Cache (QC) 会缓存select 查询( 默认开启),以减少下次查询需用的时间.
但如果对表进行 INSERT, UPDATE, DELETE, TRUNCATE, ALTER TABLE, DROP TABLE, DROP DATABASE 等操作, 则之前的缓存会失效且删除. 这样一定程度上也会影响数据库的性能, 故而对一些频繁变动的表, 开启缓存并不好; 另外在测试数据库性能时,也需要关闭QC,以避免其对测试结果的影响.
QC 有较大的弊端,无胜于有, 故而在MySQL 8.0中,移除了查询缓存的相关功能:
The query cache is deprecated as of MySQL 5.7.20, and is removed in MySQL 8.0.
现在缓存更多是做在应用逻辑层, 或使用一些NoSQL型数据库如Redis
8.0以下的*查询缓存*相关设置,可参考:select version();
1 | 8.0.21 |
show variables like “%cache%”
更多可参考:
MySQL 8.0: Retiring Support for the Query Cache
原文链接: https://dashen.tech/2015/09/29/MySQL关闭查询缓存/
版权声明: 转载请注明出处.