mysql如何启用query cache

P粉602998670
发布: 2025-10-09 23:45:01
原创
795人浏览过
MySQL 5.7及之前版本可通过配置启用Query Cache以提升读取性能,首先确认支持性:执行SHOW VARIABLES LIKE 'have_query_cache',若返回YES则可继续。接着在my.cnf或my.ini的[mysqld]段添加query_cache_type=ON、query_cache_size=64M、query_cache_limit=2M、query_cache_min_res_unit=4k等参数。重启MySQL服务后,使用SHOW VARIABLES LIKE 'query_cache_%'和SHOW STATUS LIKE 'Qcache%'验证状态,关注Qcache_hits与Qcache_lowmem_prunes等指标。但需注意其在高并发写入时易成瓶颈,且MySQL 8.0已移除该功能,不建议新项目使用。

mysql如何启用query cache

MySQL的Query Cache功能在较新版本中已经被移除,但从MySQL 5.7及更早版本来看,它曾用于缓存SELECT查询的结果以提升读取性能。如果你使用的是MySQL 5.7或之前版本,并希望启用Query Cache,可以按照以下步骤操作。

检查是否支持Query Cache

并非所有MySQL编译版本都默认开启Query Cache。可以通过以下命令查看当前服务器是否支持:

SHOW VARIABLES LIKE 'have_query_cache';

如果返回值为YES,则表示支持Query Cache。

启用并配置Query Cache

Query Cache需要在MySQL配置文件中手动启用。修改my.cnf(Linux)或my.ini(Windows)文件,在[mysqld]部分添加或调整以下参数:
  • query_cache_type = ON:启用查询缓存。可选值有:
    • 0 或 OFF:关闭缓存
    • 1 或 ON:开启缓存,除非使用SQL_NO_CACHE
    • 2 或 DEMAND:仅对带有SQL_CACHE的SELECT语句进行缓存
  • query_cache_size = 64M:设置分配给Query Cache的内存大小。建议从16MB到256MB之间根据实际负载调整。设为0则禁用缓存。
  • query_cache_limit = 2M:限制单个查询结果可缓存的最大大小,防止大结果集占用过多空间。
  • query_cache_min_res_unit = 4k:每个缓存块的最小内存单元,适当调整可减少内存碎片。
示例配置:

[mysqld]
query_cache_type = ON
query_cache_size = 64M
query_cache_limit = 2M
query_cache_min_res_unit = 4k

重启MySQL服务并验证状态

保存配置文件后,重启MySQL服务使更改生效:

sudo systemctl restart mysql

如知AI笔记
如知AI笔记

如知笔记——支持markdown的在线笔记,支持ai智能写作、AI搜索,支持DeepseekR1满血大模型

如知AI笔记 27
查看详情 如知AI笔记
登录MySQL后运行以下命令确认Query Cache已启用:

SHOW VARIABLES LIKE 'query_cache_%';
SHOW STATUS LIKE 'Qcache%';

关键状态说明:
  • Qcache_hits:缓存命中次数,越高说明缓存效果越好
  • Qcache_inserts:缓存插入次数
  • Qcache_not_cached:未被缓存的查询数
  • Qcache_lowmem_prunes:因内存不足而删除的缓存条目数,若频繁发生应考虑增大query_cache_size

注意事项与局限性

尽管Query Cache能提升简单查询的性能,但它存在明显缺点:
  • 在高并发写入场景下,缓存频繁失效,反而成为性能瓶颈
  • 锁竞争严重,尤其是多线程环境下
  • 只适用于完全相同的SQL语句,大小写、空格不同都会视为不同查询
  • MySQL 8.0起已彻底移除Query Cache功能,不推荐在新项目中依赖它
对于MySQL 8.0及以上版本,官方建议通过其他方式优化查询性能,如合理使用索引、调整缓冲池大小(innodb_buffer_pool_size)、使用外部缓存(如Redis)等。

基本上就这些。如果你还在使用老版本MySQL且读多写少,适当配置Query Cache可能有一定帮助,但要注意监控其实际效果。一旦升级到MySQL 8.0,相关参数将不再有效。

以上就是mysql如何启用query cache的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号