美文网首页
Oracle索引失效

Oracle索引失效

作者: 是阿离 | 来源:发表于2017-08-04 21:23 被阅读0次

    问题

    t_freeproduct_infoprod_id varchar2(100)字段加上索引后,使用

    SELECT * FROM t_freeproduct_info t
    where t.prod_id = 13;
    

    查询时发现速度并没有提升

    原因

    Oracle中存在建立了索引,查询也未用到的现象,即索引失效,能够引起索引失效的现象主要有:

    1. 未使用WHERE条件 0.0
    2. 使用NULLIS NULL作为条件
    3. 使用<>!=NOT INNOT EXIST等这类不等于操作
    4. 查询条件使用函数,如to_char()
    5. 不匹配的数据类型,如问题中,索引字段为varchar2类型,查询条件中却使用int类型
    6. 使用LIKE '%T' 语句中%在前面的

    原语句修改为

    SELECT * FROM t_freeproduct_info t
    where t.prod_id = '13';
    

    参考文章

    能使 Oracle 索引失效的六大限制条件
    oracle 索引失效的原因

    相关文章

      网友评论

          本文标题:Oracle索引失效

          本文链接:https://www.haomeiwen.com/subject/aymblxtx.html