Case:被驱动表没有使用索引导致性能差


问题开发有一条insert SQL 是定时任务,内容如下, 每天需要约执行5-10次,笔者从select部分开始跑了一会没有结果,就放弃了,效率很差.两个表的表结构如下分析处理单独看select部分的执行计划如下,可以发现被驱动表mr使用的是mr.fromUserId和mr.toUserId列上的索引,但是这两个索引作为删选条件并不好,rows有150多万行;最好的情况是使用连接条件on mr.bu开发云主机域名ssflowno = sf.merOrderId中mr.bussflowno列的索引,所以建议在mr.bussflowno上创建一个普通索引。
创建索引之后的执行计划如下,rows变为1,type从index_merge变成等值查询reg,只需0.2s便跑出select结果。
总结被驱动表的连接条件on后面一定要有索引;驱动表where后面的列最后要有筛选条件比较好的索引;

相关推荐: 百融榕树利用Spring结合MyBatis实现数据库读写分离

百融榕树智网AI技术,根据用户个人综合信用情况,为其推荐合适用户的产品和服务。用户登陆榕树界面,每个人能看到的产品信息都是不一样的,包括利率、期限和额度等。相比标准式服务,百融榕树已帮助用户做了筛选,为用户提供了定制化的贷款信息服务。百融榕树采用技术Sprin…

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

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 06/08 11:42
Next 06/08 11:48

相关推荐