问题:导出接口因Mysql查询时间较长导致公司的远程调用超时无法导出。
第一次优化sql 也不是很懂,总结一下相应的优化思路吧,结论是30秒+的sql优化到10秒内。
在这总结一下优化思路:sql内内容如下
2.然后用 EXPLAIN进行分析这个sql,发现在关联字段中,有关联字段没有用到索引,然后给他加上索引,sql从30秒提升到了15秒
3.然后我以为可以结束了,但上了生产之后,这个sql还是会有问题
4.问题是开发环境和生产环境同样的sql和索引使用到的情况却不同,开发环境能10秒执行完,生产却要15秒
开发环境用到的索引如下
生产索引如下
明显有问题啊,两套环境同样的索引却不一样的使用。
我怀疑生产环境是不是优先使用主建索引啊,导致索引使用情况不同,sql效率低下
于是我想指定索引 就使用到了 force index(IDX_ROLE_DONE)
然后测试和生产环境sql效率就相同了,10秒内