【Mysql】慢sql分析优化案例汇总
(一)案例一:阿里云慢sql挑战赛实战
190毫秒干到2毫秒
【1】表结构
【2】待优化sql
【3】第一次explain分析
【4】选取驱动表
优先选择数据量最小的表作为驱动表。a表和c表都是只有一条数据,但是a表的sql里有gmt_create进行排序,可以在这个字段上添加索引,从索引的利用率上来看,用a表作为驱动表是最合适的。
【5】开始创建索引
将关联字段和查询字段创建联合索引,有效减少回表数据量
【6】再次执行explain
c表上的user_id的索引生效了,其他两个表的索引没有生效
【7】执行explain extended
【8】修改表结构,选择合适的字段
【9】最后explain看优化结果
之前索引失效是因为字段类型不一致而隐式转型导致的