1、查看语句是否有用到索引
使用explain select * from tbl_cc_ope op where op.type='SD' and op.status='0' and op.op_time='20191126' \G;
在explain表格中,可以发现对应的type如果是ALL,那么就表示没有用到索引。
误区:explain中有一列key_len,在调优前,认为ken_len 长度越长越好,实际不是这样, 并不是越长越好,不然这个规则也太简单了。
key_len的长度计算公式,可以参考这篇文章,https://blog.csdn.net/u011514729/article/details/79550462 简单易懂
2、获得sql分析器,调优之后的sql语句。
使用explain extended select * from tbl_cc_ope op where op.type='SD' and op.status='0' and op.op_time='20191126' \G;
执行之后,会打印warnings,
然后执行 show warnings \G;
得出的结果就是优化的sql语句,但千万不要认为它是最终的语句。
3、最终收获,当遇到大数据量时,索引一定得少并且准确。如果表容量够大,尽量使用分表,删除无用数据,应用进行优化。过多关注sql语句优化,并不能获得更好的效果。
添加一个很有指导意见的博客,可以参考参考。
https://www.cnblogs.com/tangyanbo/p/4462734.html