码迷,mamicode.com
首页 > 数据库 > 详细

复杂sql优化步骤与技巧

时间:2017-04-14 16:20:45      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:数据权限   检查   应用   替代   记录   执行   研究   加工   时间   

     数据管理型系统,由于用户的要求或者系统设计要求,会出现大量表进行join,还要进行大量统计性数据查询展示,甚至数据权限限制等等操作。

最后会导致sql异常复杂,随着数据量增加,或者只是应用到生产环境(正式环境)就会出现系统反应慢,体验极差的现象,这个时候不得不对这些

复杂的sql进行优化。没有经验的程序员会感觉无从下手,这么复杂的sql语句看一眼就头疼,怎么办呢?

根据个人的工作经验提供一下优化步骤:

首先要对sql语句进行格式化,使sql条理清晰,甚至分步骤添加注释,弄清楚每个步骤是为了得到什么;

第二步,用第一部格式化过的sql与最终需求做对比,如果没有用的表,就不要进行join了;没有用的字段也不要进行返回了。

第三步,分条检查子查询到底是哪个表查询速度慢,或者哪个条件导致的查询速度慢。

第四步,配合sql执行计划,这个由于自己也不擅长看执行计划,只能尽量避免全表扫描,提前限制sql数据筛选范围。

第五步,检查是否用了不合适的in查询,过量的in会导致效率骤然降低很多。

第六步,检查是否存在过多的or查询,or会导致全表扫描,能避免尽量避免。

第七步,检查子查询是否过于复杂,或者sql处理是否过于复杂,如果可以将复杂加工放到程序中进行处理。

第八步,可以用exists替代的地方,用exists进行替代。

第九步,可以建视图,对sql进行简化,至于视图是否可以提高查询效率,我也不知道,需要找时间研究。

 

以上步骤准确的说,是可以采取的方法,除了前几条,其他的没有先后顺序。

这些心得是在老大指导进行sql优化时的心得,记录下来既可以总结自己的收获,也希望能与大家的观点碰撞,相互进步!

 

复杂sql优化步骤与技巧

标签:数据权限   检查   应用   替代   记录   执行   研究   加工   时间   

原文地址:http://www.cnblogs.com/Tpf386/p/6709310.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!