美文网首页
SQL不走索引的可能原因

SQL不走索引的可能原因

作者: 小石头_ | 来源:发表于2018-07-05 21:39 被阅读0次

1、联合索引,查询条件没有联合索引的第一列。

2、在包含有null值的table列上建立索引,当时使用select count(*) from table时不会使用索引。

3、在索引列上使用函数时不会使用索引,如果一定要使用索引只能建立函数索引。

Where条件中对字段增加处理函数将不使用该列的索引

select * from emp where to_char(hire_date,'yyyymmdd')='20080411' (不使用)

select * from emp where hire_date = to_char('20080411','yyyymmdd') (使用)

4、当被索引的列进行隐式的类型转换时不会使用索引。

select * from t where indexed_column = 5,而indexed_column列建立索引但类型是字符型

5、使用 IS NULL 和 IS NOT NULL

SELECT ... FROM emp WHERE comm IS NULL; comm 列的索引会失效

6、使用 LIKE ‘%T’ 进行模糊查询,要走索引,like的后面不能以%开头

7、WHERE 子句中使用不等于操作

不等于操作包括:<>, !=, NOT colum >= ?, NOT colum <= ?

对于这个限制条件可以通过 OR 替代,例如: colum <> 0 ===> colum>0 OR colum<0

8、等于和范围索引不会被合并使用

SELECT emp_id, emp_m, salary_q ... FROM emp WHERE job='manager' AND deptno>10

job 和 deptno 都是非唯一索引,这种条件下 oracle 不会合并索引,它只会使用第一个索引。

相关文章

  • SQL不走索引的可能原因

    1、联合索引,查询条件没有联合索引的第一列。 2、在包含有null值的table列上建立索引,当时使用select...

  • MySQL正确使用索引

    需要解决的问题 知道sql为什么会走索引? 为什么有些sql不走索引? sql会走那些索引,为什么会这么走? In...

  • Mysql性能调优

    一、sql慢原因 1 、无索引,索引失效2 、锁等待3 、不恰当的sql select * 、对大数据表limit...

  • 优化分析

    性能下降,SQL慢,执行时间长,等待时间长的可能原因有: 1. 查询语句写的烂 2. 索引失效(索引有单值索引,双...

  • MySQL 如何正确的使用索引

    学习索引,主要是写出更快的sql,当我们写sql的时候,需要明确的知道sql为什么会走索引?为什么有些sql不走索...

  • mysql优化1——索引

    1.SQL慢原因 1.1 查询语句写的太烂了 1.2 索引失效(单值索引,复合索引) 1.3 关联...

  • Mysql索引

    提起优化 SQL,可能会把它理解为优化索引。简单来说这也不算错,索引在 SQL 优化中占了很大的比重。索引用得好,...

  • 索引失效

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

  • SQL Server数据库高级进阶之索引优化实战演练

    一、SQL Server索引优化本质 二、SQL Server索引存储机制 三、SQL Server索引类型分类 ...

  • MySQL索引优化分析

    1、SQL性能下降的原因 数据太多:考虑分库分表关联了太多的表:SQL优化没有充分利用到索引:建立索引服务器调优及...

网友评论

      本文标题:SQL不走索引的可能原因

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