一、oracle索引失效情况

1、没有where子句

​ 添加索引的字段必须在where条件后适当使用才会生效

2、where子句中使用函数

如果没有使用基于函数的索引,那么对有索引的列使用函数会使索引失效;

但是把函数放在应用条件上,索引是可以有效的

eg:select * from staff where trunc( birthdate ) = ‘01-MAY-82’; // birthdate上的索引失效

select * from staff where birthdate< to_date( ‘01-MAY-82’); // birthdate上的索引有效

3、使用is null 和 is not null 索引全部失效
4、使用 like ‘%T’ 进行模糊查询

select * from staff where name like ‘aaa%’ ; // name索引是有效的

select * from staff where name like ‘%aaa’ ; // name索引是无效

5、使用不等于 <>, !=, NOT colum >=?, NOT colum<=? 可以通过OR替代,

例如 Colum <> 0 可用 colum>0 OR colum<0

6、等于和范围索引不会被合并使用,只会使用第一个索引
7、比较不匹配的数据类型

比如一个字段是varchar2类型,查询时用的是 where a=10001,会被自动转换成 where to_number(a) = 10001

二、索引相关其他

  1. or语句如果有一个字段没有索引,就全部不走索引
  2. 建立索引一般分为在线索引和非在线索引
在线索引:create index index_My_test on userId
非在线索引: 锁表,优先创建索引,此时DML都会阻塞  create index X on student_info(student_id);  explain select * from student_info

三、sql优化

  • sql语句使用大写

  • 条件子句优先级:on,where,having

  • exists替代in,not exists替代not in

  • group by最好使用where子句筛选后分组

  • where子句执行顺序从右到左,过滤最多的条件放在最后

sql索引失效和优化相关推荐

  1. sql索引失效的几种情况

    sql索引失效的几种情况 1.使用 != 或者 <> 导致索引失效 2.类型不一致导致索引失效 3.函数导致索引失效 4.运算符导致索引失效 5.模糊搜索导致索引失效 6.NOT IN.N ...

  2. 80-450-020-原理-索引-索引失效与优化

    文章目录 1.概述 1.1 测试数据 1.2 索引失效的情况 1.2.1 全值匹配 1.2.2 最佳左前缀法则 1.2.3 不在索引上计算 1.2.4 右边列范围 1.2.5 * 号 1.2.6 范围 ...

  3. 【SQL Server】性能优化-索引

    性能优化-索引 1 索引 1.1 什么是索引 1.2 索引的存储机制 1.3 创建索引原则 1.4 如何创建索引 1.4.1 创建索引 1.4.1 删除索引 1.4.1 显示索引 1.5 索引使用次数 ...

  4. {好文备份}SQL索引一步到位

    SQL索引一步到位(此文章为"数据库性能优化二:数据库表优化"附属文章之一) SQL索引在数据库优化中占有一个非常大的比例, 一个好的索引的设计,可以让你的效率提高几十甚至几百倍, ...

  5. sql 逐行更新_sql优化面试题

    第一方面:30种mysql优化sql语句查询的方法 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by涉及的列上建立索引. 2.应尽量避免在 where 子句中使用 ...

  6. 转载:SQL索引一步到位

    原文: http://www.cnblogs.com/AK2012/archive/2013/01/04/2844283.html SQL索引一步到位(此文章为"数据库性能优化二:数据库表优 ...

  7. SQL优化避免索引失效

    Oracle 索引的目标是避免全表扫描,提高查询效率,但有些时候却适得其反.例如一张表中有上百万条数据,对某个字段加了索引,但是查询时性能并没有什么提高,这可 能是 oracle 索引失效造成的.or ...

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

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

  9. 文件服务器索引失效,SQL优化 MySQL版 – 避免索引失效原则(一)

    避免索引失效原则(一) 精力有限,剩余的失效原则将会在 <避免索引失效原则(二)>中连载出来,请谅解 作者 : Stanley 罗昊 [转载请注明出处和署名,谢谢!] 避免索引失效的一些原 ...

最新文章

  1. webpack中loader加载器配置postCss自动添加CSS兼容前缀
  2. ubuntu 16.04 分辨率只有800×600问题解决
  3. js 数组 实现 完全树_算法和数据结构 | 树状数组(Binary Indexed Tree)
  4. 2019云栖大会精品资料免费下载
  5. C++BOOL,int,float,指针类型的变量a 与“零”比较语句
  6. 初中生问题:求任意凸多边形的交叉面积
  7. 区块链在数据流通中的应用
  8. 天线越大越好吗_无线路由知识误区!解读天线数量与信号强弱的关系
  9. apipost提示error:invalid protocol的解决方案
  10. 数据:以太坊2.0合约余额新增9856 ETH
  11. Windows设置共享文件夹,ubuntu访问
  12. 【故障诊断分析】基于matlab FFT轴承故障诊断【含Matlab源码 1397期】
  13. 浪潮服务器显示一个红色闪电图标,华为手机开不了机,只显示一个红色圆圈里面一个红色闪电符号...
  14. cmd命令行中文显示乱码
  15. 清北复交人浙南 计算机交叉学科项目大盘点!
  16. OpenWRT 迅雷远程下载设置
  17. el-table拆分单元格
  18. 使用XCA工具生成SSL证书
  19. css中white-space的值pre-wrap
  20. 一个即将走向社会的软件技术专业学生的感想

热门文章

  1. 2022年广东省房地产经纪人(房地产经纪职业导论)练习题及答案
  2. STM32软件复位方式
  3. Linux下使用Daemon实现服务器永久存活
  4. linux打包工具deb,deb打包方法
  5. 半导体中本征载流子的浓度推导
  6. github 私有化部署_用GitLab搭建自己的私有GitHub
  7. android wifi开源项目,开源项目之android-wifi-tether(网络共享软件)
  8. Android EventBus使用方法
  9. android framework源码目录介绍
  10. supersocket client 固定端口_西门子CPU控制器1512P-1PN端口交换机附件200KB