MySQL导致CPU消耗过大,如何优化
谁在耗损cpu? 用户+体系+IO守候+软硬间断+空闲 罪魁是谁? 用户 用户空间CPU耗损,各类逻辑运算 正在举办大量tps 函数/排序/范例转化/逻辑IO会见… IO守候 守候IO哀求的完成 此时CPU现实上空闲 如vmstat中的wa 很高。但IO守候增进,wa也不必然会上升(哀求I/O后守候相应,但历程从核上移开了)。 发生影响 用户和IO守候耗损了大部门cpu。
怎样镌汰CPU耗损? 镌汰守候 镌汰IO量 SQL/index,行使吻合的索引镌汰扫描的行数(需均衡索引的正收益和维护开销,空间换时刻)。 晋升IO处理赏罚手段 加cache/加磁盘/SSD 镌汰计较 镌汰逻辑运算量
如substr等字符运算,dateadd/datesub等日期运算,abs等数学函数
如union all取代 union,order by 索引字段等
如数字用tiny/int/bigint等,必须转换的在传入数据库之前在应用中转好
镌汰逻辑IO量
如增进索引,调解组合索引字段次序,去除选择性很差的索引字段等等
如将很少行使的大字段拆分到独立表,很是频仍的小字段冗余到“引用表”
如镌汰伟大join,镌汰order by,只管union all,停止子查询等
如tinyint够用就别老是int,int够用也别老bigint,date够用也别老是timestamp
镌汰query哀求量(非数据库自己)
如用户信息,商品信息等
如榨取统一页面多次一再哀求沟通数据的题目,通过跨页面参数转达镌汰会见等
进级cpu
参考
【编辑保举】
点赞 0 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |