MySQL索引最左前缀原则导致系统瘫痪


早上九点半左右 业务人员反映他们页面打开缓慢,后续页面出现502。然后我这边收到报警 ,登录数据库服务器(4核cpu)查看 cpu 400% load 30左右进入到数据库中查看发现好多慢查询
本以为这些慢查询是来自该系统每天的定时任务(该系统相当于一个olap系统,每天会进行批量的数据查询提取。)于是先crontab -e 把所有的定时任务都停掉。但是慢查询还是存在。所有的慢查询都是同一个模板, 后来询问开发的同事昨天上线了新版本查看执行表结构查看执行计划虽然表中的联合索引上有loan_id这个列但是根据索引的最左前缀原则,where条件中直接出了loan_id,复合索引出现了断开,所以索引失效。研发同学以为是可以用到表中的索引,没有审核就上线了,所以导致了全表扫开发云主机域名描导致服务器的负载超高。解决办法添加索引alter table mostop_xiaodai_loan_info_extend add index IDX_loan_id (loan_id);添加索引后执行计划服务器负载立马回复正常
通过本次事故上线前进行SQL审核应用和数据库单独部署在不同服务器上

相关推荐: RDS Mysql Single-AZ和Multi-AZ性能差异

高可用性,是很多数据库工程师/架构师最重视的系统架构环节。在AWS上,Multi-AZ是RDS很重要的一个HA方案。但是启用Multi-AZ,对系统性能是否有影响,性能牺牲多少,是很多用户关系的点。今天,我就针对Multi-AZ的性能进行测试。1. 环境准备,…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 06/04 17:46
下一篇 06/04 17:46

相关推荐