1) 没有查询条件,或者查询条件没有建立索引

2) 在查询条件上没有使用引导列

3) 查询的数量是大表的大部分,应该是30%以上。

4) 索引本身失效

5) 查询条件使用函数在索引列上,或者对索引列进行运算,运算包括(+,-,*,/,! 等)

错误的例子:select * from test where id-1=9; 正确的例子:select * from test where id=10;

6) 对小表查询

7) 提示不使用索引

8) 统计数据不真实

9) CBO计算走索引花费过大的情况。其实也包含了上面的情况,这里指的是表占有的block要比索引小。

10)隐式转换导致索引失效.这一点应当引起重视.也是开发中经常会犯的错误.

由于表的字段tu_mdn定义为varchar2(20),但在查询时把该字段作为number类型以where条件传给数据库,

这样会导致索引失效. 错误的例子:select * from test where tu_mdn=13333333333;

正确的例子:select * from test where tu_mdn='13333333333';

12) 1,<> 2,单独的>,

13,like "%_" 百分号在前.

4,表没分析.

15,单独引用复合索引里非第一位置的索引列.

16,字符型字段为数字时在where条件里不添加引号.

17,对索引列进行运算.需要建立函数索引.

18,not in ,not exist.

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

20,B-tree索引 is null不会走,is not null会走,位图索引 is null,is not null 都会走

21,联合索引 is not null 只要在建立的索引列(不分先后)都会走,

in null时 必须要和建立索引第一列一起使用,当建立索引第一位置条件是is null 时,

其他建立索引的列可以是is null(但必须在所有列 都满足is null的时候),

或者=一个值; 当建立索引的第一位置是=一个值时,其他索引列可以是任何情况(包括is null =一个值),

以上两种情况索引都会走。其他情况不会走。

---------

MyISAM 存储引擎索引键长度总和不能超过1000 字节;

BLOB 和TEXT 类型的列只能创建前缀索引;

MySQL 目前不支持函数索引;

使用不等于(!= 或者<>)的时候MySQL 无法使用索引;

过滤字段使用了函数运算后(如abs(column)),MySQL 无法使用索引;

Join 语句中Join 条件字段类型不一致的时候MySQL 无法使用索引;

使用LIKE 操作的时候如果条件以通配符开始( '%abc...')MySQL 无法使用索引;

使用非等值查询的时候MySQL 无法使用Hash 索引;

在我们使用索引的时候,需要注意上面的这些限制,尤其是要注意无法使用索引的情况,因为这很容易让我们因为疏忽而造成极大的性能隐患。

oracle组合索引失效_oracle 索引失效原因相关推荐

  1. oracle or索引失效_ORACLE索引失效的问题分析

    一.问题发现 2月16日现场同事发现某个tablespace空间快要耗尽,让我们手工清楚些数据,腾出足够空间,等用户有预算添加磁盘.该问题年前已经处理过一次,我们已经将数据保留期限做了缩减,按道理不会 ...

  2. mysql locate不走索引_索引失效的情况及原因定位

    同事遇到一个奇葩的问题,一个表里某个字段建了索引,但是有的值走索引,有的值不走索引.因为一般情况一个字段要么完全不走索引,要么走索引,怎么会有的值走索引,有的不走索引. select 条件非常简单,因 ...

  3. mysql in or索引失效_in 索引失效的问题

    简单的in查询 索引失效: 步骤 1.检查建立索引没有 order_status 字段为普通索引的tinyint类型 2.检查是否使用了使索引失效的语句 3.explain查看执行计划 而 in(1) ...

  4. mysql数据索引失效_MySQL索引失效的几种情况

    1.索引无法存储null值 a.单列索引无法储null值,复合索引无法储全为null的值. b.查询时,采用is null条件时,不能利用到索引,只能全表扫描. 为什么索引列无法存储Null值? a. ...

  5. sql语句分析是否走索引_SQL Server 索引使用分析(2)- 改善SQL语句,防止索引失效...

    原文出处 改善SQL语句 很多人不知道SQL语句在sql server中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解.比如: select * from table1 whe ...

  6. 后端开发【一大波有用知识】MySQL索引原理(索引、约束、索引实现、索引失效、索引原则)以及SQL优化

    一.索引 索引分类:主键索引.唯一索引.普通索引.组合索引.以及全文索引(elasticsearch) 主键索引 非空唯一索引,一个表只有一个主键索引:在 innodb 中,主键索引的 B+ 树包含表 ...

  7. mysql in 索引 失效_in 索引失效的问题

    简单的in查询 索引失效: 步骤 1.检查建立索引没有 order_status 字段为普通索引的tinyint类型 2.检查是否使用了使索引失效的语句 3.explain查看执行计划 而 in(1) ...

  8. 【MySQL进阶-03】深入理解mysql的索引分类,覆盖索引,覆盖索引失效,回表,MRR

    MySql系列整体栏目 内容 链接地址 [一]深入理解mysql索引本质 https://blog.csdn.net/zhenghuishengq/article/details/121027025 ...

  9. 索引的使用—— 验证索引提升查询效率 || 避免索引失效 —— 全值匹配 /最左前缀法则/范围查询右边的列,不能使用索引/不要在索引列上进行运算操作/字符串不加单引号,造成索引失效

    索引的使用 索引是数据库优化最常用也是最重要的手段之一, 通过索引通常可以帮助用户解决大多数的MySQL的性能优化问题 验证索引提升查询效率 查询速度很快,接近0s ,主要的原因是因为id为主键,有索 ...

最新文章

  1. Flutter底部导航栏的实现
  2. Tomcat意外宕机分析
  3. 网易笔试——混合颜料
  4. 在asp.net 中应用POST传递和接收XML文件以及参数.
  5. springboot报错---@RunWith(SpringRunner.class)
  6. Spring Data 系列(二) Spring+JPA入门(集成Hibernate)
  7. 达摩院年终预测出炉:2022 十大科技趋势,AI for Science 高居榜首
  8. 尘埃落定,初心未改——一个大学生的电子大赛感悟
  9. python 调用rpc服务_在Django项目中对Python函数进行RPC调用的优雅方式
  10. 开源新手必看7个小技巧
  11. Java 发展简史:初生遇低谷,崛起于互联网
  12. json序列化_JSON 序列化和反序列化 In Go
  13. 《Python语言程序设计基础》:第2章:Python程序实例解析:程序练习题
  14. 计算机视觉论文-2021-09-14
  15. 微信小程序button修改边框样式after
  16. 服务器装Win10虚拟机流畅,win10自带虚拟机和vmware哪个更流畅_win10自带虚拟机和vm哪个好用-win7之家...
  17. oracle用户配额不足,ORACLE 表空间不足与用户配额(限额)不足的问题解决
  18. 如果已经安装过个人版Delphi2007,如何安装Delphi2007企业版
  19. LTE网络CQI机制
  20. 关于计算机网络的学习

热门文章

  1. 迅雷C++笔试题(转)
  2. 第1天:基础入门-概念名词
  3. 基于QT实现的教师住房管理系统
  4. 【SandQuant 量化投资】威廉·夏普:资本资产定价:风险条件下的市场均衡理论
  5. 如何在手机上登陆学校邮箱
  6. 锂电池基于DW01组成的过充电、过放、短路保护电路
  7. 什么是并发、并行、高并发?到底多大才算高并发?
  8. php mysql存储过程写法_mysql存储过程写法
  9. 《斯坦福高效睡眠法》笔记
  10. STM32FF030 替代国产单片机——DP32G030