记一次线上性能优化

今天在查看接口的时候发现有两个接口长期霸占最耗时接口排行榜,所以找了个空闲定位了一下问题。从原来的500ms左右提到4ms左右,特此小小记录一下。

定位过程

  1. 通过程序监控工具,我们发现有一个slow sql,单表查询。

    select pk from tb1 where c1 = 'some key' and ... other condition
    

    在sql书写上的确没有优化空间了。

  2. EXPLAIN上面sql发现:

    通过上图发现是type为ALL全表扫描,单表比较庞大,所以扫表必然慢。

解决

  1. 字段c1是一个基本不会重复的字段,所以在这个上面加上了索引就可以了。加过索引之后的执行计划:

    上图可以发现,ref变成了const。

结束语

写建表sql的时候要根据自己的业务量和业务场景创建合适的索引

posted @ 2015-08-12 21:12  土豆条  阅读(163)  评论(0编辑  收藏  举报