尽管MySQL的查询缓存(Query Cache)最初设计目的是为了提升性能,但因其存在严重的可扩展性问题和易成为系统瓶颈,MySQL在8.0版本中正式移除了这一功能。自5.7版本起,MySQL已将查询缓存的默认启用状态调整为关闭,并最终在5.7.20版将其标记为过时。本文将深入探讨为何MySQL在历经多个版本迭代后,决定取消查询缓存,以及查询缓存的设计初衷。
查询缓存(Query Cache)是MySQL中的一项特殊缓存机制,用于存储SELECT语句及其对应结果集,当遇到相同的查询请求时,直接从缓存中返回结果,避免重复执行查询。此功能在数据变动频率低且重复查询多的场景下尤为有效。
query_cache_min_res_unit参数可减少内存碎片,合理设置可平衡内存浪费和CPU消耗。FLUSH QUERY CACHE命令可整理碎片,集中空闲空间。Qcache_free_blocks、Qcache_free_memory、Qcache_hits等状态变量,评估缓存的健康状况。综上所述,MySQL 8.0中移除查询缓存的决策 ,旨在提供更加稳定、可预测的性能表现。