记一次线上性能优化
2015-08-12 21:12
429 查看
今天在查看接口的时候发现有两个接口长期霸占最耗时接口排行榜,所以找了个空闲定位了一下问题。从原来的500ms左右提到4ms左右,特此小小记录一下。
在sql书写上的确没有优化空间了。
通过上图发现是type为ALL全表扫描,单表比较庞大,所以扫表必然慢。
上图可以发现,ref变成了const。
定位过程
通过程序监控工具,我们发现有一个slow sql,单表查询。select pk from tb1 where c1 = 'some key' and ... other condition
在sql书写上的确没有优化空间了。
EXPLAIN上面sql发现:
通过上图发现是type为ALL全表扫描,单表比较庞大,所以扫表必然慢。
解决
字段c1是一个基本不会重复的字段,所以在这个上面加上了索引就可以了。加过索引之后的执行计划:
上图可以发现,ref变成了const。
结束语
写建表sql的时候要根据自己的业务量和业务场景创建合适的索引相关文章推荐
- acmcoder1001:Sum Problem细节问题
- [机器学习]线性回归 被Andrew Ng讲的如此简单易懂
- java注解机制
- hdu1818 It's not a Bug, It's a Feature!(隐式图最短路径Dijkstra)
- 值传递和引用传递
- Fibonacci number’s ratio (the hard version)
- HDOJ-1301-POJ-Jungle Roads
- 8种Nosql数据库系统对比
- HDU 1542 Atlantis(线段树扫描线·面积并)
- ORA-06508: PL/SQL: could not find program unit being called
- 获取联系人以及挑选所需要的号码
- NPOI简单操作Excel
- 个位数统计
- 程序调试和消息菜单汇总知识
- 创建带分区的表
- 程序员如何掌握新技术与时俱进
- C字符串相似度计算
- Spring Ioc基础总结
- JS学习十一天----类和模块
- 【工业串口和网络软件通讯平台(SuperIO)教程】五.二次开发图形显示界面