【数据库】那些操作会引起索引失效

1、使用LIKE语句的前缀匹配

       例如:LIKE"%456"  ,这种查询会使得索引失效,因为数据库需要扫描整个表来匹配以特定字符或字符串开头的记录。

2、使用OR条件且没有索引

       例如:WHERE column1 = value1 OR column2 = value2,如果column1 和column2 都没有索引,或者没有同时为这两列创建复合索引,查询可能会全表扫描

3、使用函数或表达式在列上

       例如:WHERE UPPER(column) = 'VALUE'。对列值进行函数操作(如大小写转换)会使得索引失效

4、使用类型转换

       例如:WHERE CAST(column AS INT) = 10。如果列是字符串类型,而查询中使用了类型转换,索引可能不会使用。

5、使用非等值查询

        例如:WHERE column > value。虽然这种查询可以使用索引,但如果查询条件过于复杂或范围过大,可能会导致索引效率降低。

6、使用not in

        例如:WHERE column NOT IN (value1, value2)。这种查询通常会导致索引失效,因为数据库需要检查列表中的每个值。

7、使用is null或is not null

        虽然这些操作可以使用索引,但如果表中NULL值过多,索引效率可能会降低。

8、使用ORDER BY或GROUP BY子句

        如果排序或分组的列没有索引,或者索引不适合当前的查询条件,可能会导致索引失效。

9、使用DISTINCT

        例如:SELECT DISTINCT column FROM table。如果列没有索引,或者索引不适合当前的查询条件,可能会导致索引失效。

10、使用JOIN操作

        如果JOIN条件的列没有索引,或者索引不适合当前的查询条件,可能会导致索引失效。

11、使用子查询

        例如:WHERE column IN (SELECT column FROM another_table)。如果子查询的结果集很大,或者子查询的列没有索引,可能会导致索引失效。

  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值