首页 > 数据库技术 > 详细

SQL语句中索引失效的原因

时间:2020-11-16 14:59:12      阅读:60      评论:0      收藏:0      [点我收藏+]

SQL语句中索引失效的情况。

总结如下:

1. 索引字段进行判空查询时。也就是对索引字段判断是否为NULL时。语句为is null 或is not null。 

select * from 表一  where   字段一 is null;
select * from 表一  where   字段一 is not null;

 

2. 对索引字段进行like查询时。比如:select * from SoftWareDetailInfo where SoftUseLine like ‘%OQC%‘。不过网上有的例子说like ‘xx%‘索引起作用。我没试过。

 

3. 判断索引列是否大于、小于或者不等于某个值时。

select * from 表一 where  字段一 != 1select * from 表一 where  字段一 > 1select * from 表一 where  字段一 < 1

 

4. 对索引列进行运算。这里运算包括+-*/等运算。也包括使用函数。比如:

  select * from SoftWareDetailInfo where SoftUseLine +0= 0

  此时索引不起作用。

  select * from SoftWareDetailInfo where count(SoftUseLine) = 0

  此时索引也不起作用。

  也就是说如果不是直接判断索引字段列,而是判断运算或其它函数处理后的索引列索引均不起作用。

 

  5. 复合索引中的前导列没有被作为查询条件。比如:Index_SoftWareDetail索引包含(a,b,c) 三列,但是查询条件里面,没有a,b 列,只有c 列,那么 Index_SoftWareDetail索引也不起作用。

SQL语句中索引失效的原因

原文:https://www.cnblogs.com/changdasheng/p/11281588.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!