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. 避免在模糊匹配以%开头;

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

 

相关文章:

  • 2022-01-10
  • 2021-11-09
  • 2021-09-14
  • 2021-09-07
  • 2022-12-23
  • 2021-11-13
  • 2022-01-17
猜你喜欢
  • 2022-12-23
  • 2022-02-21
  • 2021-10-30
  • 2022-12-23
  • 2022-12-23
  • 2021-05-09
相关资源
相似解决方案