常用的SQL调优

时间:2021-06-17 14:31:03

1. 不要使用 select * ,使用select *的话会增加解析的时间,另外会把不需要的数据也给查询出来,数据传输也是耗费时间的。

2.  避免在 where 子句中使用 or 来连接条件,可以使用 UNION ALL,并且避免使用UNION

  UNION 因为会将各查询子集的记录做比较,故比起UNION ALL ,通常速度都会慢上许多。

  一般来说,如果使用UNION ALL能满足要求的话,务必使用UNION ALL。还有一种情况,如果业务上能够确保不会出现重复记录。

3. 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。

4. 避免在索引列上做如下操作

  1. 避免在索引字段上使用<>,!=;
  2. 避免在索引列上使用 IS NULL 和 IS NOT NULL;
  3. 避免在索引列上出现数据类型转换(比如某字段是String类型,参数传入时是int类型);
  4. 避免在 where 子句中使用 or 来连接条件;
  5. 避免在 where 子句中对字段进行表达式操作;
  6. 避免在 where 子句中对字段进行函数操作;
  7. 避免在in 和 not in 的使用;
  8. 避免在模糊匹配以%开头;

  当在索引列上使用如上操作时,索引将会失效,造成全表扫描。