索引失效

在编写sql语句时,一般都会用到索引来提升sql性能,但是有些sql语句使用索引是不生效的。

  1. is null 和 is not null: 在sql语句的条件中用上述表达式来作为条件执行sql时,条件中即便字段是创建索引了亦不会被使用而是用全表扫描。

  2. 连接符||: 在sql语句中使用连接符||来作为条件表达式时,如果连接连边有一个字段没有创建索引那么整个表达式将不会使用索引而是全表扫描。

  3. 使用like通配符%: 使用like时如果用“%xxx%”这种使用方式也会造成全变扫描,所建的索引字段也会被废弃。

  4. orderby: 使用orderby时一定要注意后面所需排序的字段要是建了索引的,否则会大大降低sql执行效率。

  5. not 和 <>: 在使用不等于时所创建的索引也将不会使用而是用全表扫描

  6. 对索引列进行运算.需要建立函数索引。

  7. 当变量采用的是times变量,而表的字段采用的是date变量时.或相反情况。

  8. sql的书写规范也会影响sql语句执行效率: 要确保所写的sql语句格式统一,这样在调用的时候才会避免不必要的资源浪费。

你可能感兴趣的:(索引失效)