SQL调优经验:

1.使用模糊搜索。在like查询中,如果%放在通配符前,索引可能不会被使用 2.函数操作。如果查询条件中包含函数操作,如DATE()、SUM()等,索引可能 不会被使用,因为这可能改变了索引中数据的顺序

3.数据离散度低。如果索引列的数据离散度不高,比如性别、年龄等,建立索 引可能不会提高查询效率,反而会增加扫描范围,降低查询性能

4.频繁变更的表。如果表经常需要更新、删除和插入操作,建立索引的开销可 能会很大,影响数据库的整体性能

5.使用隐式类型转换。如果查询条件中的数据类型与数据库中的数据类型不一 致,可能会发生隐式类型转换,这可能导致索引失效

6.使用OR操作。如果查询条件中包含OR操作,即使某些条件使用了索引,整个 查询可能仍然不会使用索引。OR导致索引是在特定情况下的,并不是所有的 OR都是使索引失效,如果OR连接的是同一个字段或者连接的两个字段都有索 引,那么索引不会失效,反之索引失效

7.使用不正确的联合索引。如果查询条件不满足联合索引的最左匹配原则,索 引可能不会被使用

8.数据量比较小,不适合建立索引

9.用!= 或者<>导致索引失效

10.运算符导致的索引失效

11.NOT IN、NOT EXISTS导致索引失效

12.is null,is not null 不走索引

13.在数据量比较大的时候可以考虑使用临时表with model_version as (select model_code, version_code from sync_ebom) select model_code,version_code from model_version where model_code like '724W%' group by model_code,version_code