1、在select查询中,只返回需要的列。查询中存在的列越少,则使用的IO和网络带宽就会越少。
2、在减少列的同时,也要考虑一下减少行。使用where子句来减少查询返回的行,不要让应用程序在只需显示前10行时,却返回100行。
3、减少join次数。
连接到单个查询中的每个表都会增加额外的开销。虽然具体 join 多少个表会受到数据库设计、容量大小以及用于关联查询的列的影响,但是短小查询有短小查询的好处。
所以如果存储过程中有一个执行很长时间的非常大的查询,那么可以把这个查询分解为几个更小的中间结果,这通常会显著加快生成结果集的速度。
另外,减少join次数会降低sql的复杂程度,使得优化器生成更好的执行计划。
原文:https://www.cnblogs.com/goloving/p/15220723.html