MySQL 实际项目优化总结
1. query_cache_size引起的Waiting for query cache lock问题,严重时会引起数据库宕机
A. 优化登录新建时,发现登录性能无法提升但是MySQL资源又较正常时,使用show processlist查看发现有部分‘Waiting for query cache lock’;
B. 解决办法:查看配置命令为show variables like '%query_cache%',发现配置有值,将query_cache_size设置为0,或者在my.cnf配置文件里注释掉,该现象就消失了;
C. 知识点:
MySQL默认是关闭query cache的,当开启时,在执行每一个查询的时候先锁住query_cache,然后判断是否存在query cache中,存在就直接返回结果,不存在就进行引擎查询等操作;
query_cache的lock是一个全局的锁,insert、update、delete及SQL结构与索引变化的操作都会将query_cache失效掉,维护代价较高,对于一张表的写和读会互相等待query_cache的lock解锁,导致select的查询效率下降,故该参数适合数据库读远大于写的时候使用场景;
可参考:MySQL查询缓存的小奥妙
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗