一、Oracle索引原理

通俗易懂得讲,索引就是给每条记录建立了一个目录(索引),

每个建立的索引都是按照这个索引的字段去排序(实际未必是排序)存放,

然后按照索引字段去查询的时候,就先去查询索引,此时找到该条记录的页码rowid,然后再去主表中根据rowid查询到具体的数据。

组合索引是以多个列作为排序查询,组合索引中字段的先后有差别,单独查询第一个字段时,组合索引也能生效,但是单独查询后面的字段时,组合索引不生效。

位图索引是以二进制为存放,节省存放空间,查询更快,适合于性别、状态这类离散度比较低的字段

二、索引优缺点

优点:

当数据量大时,适当地建立索引能够大大地提高查询效率

缺点:

建立索引需要占用硬盘空间

索引会影响更新操作的效率,所以一个表的索引不是建越多越好

三、索引创建查看

创建索引

create index 索引名 on 表名(, , …) online

tablespace 表空间 ;

创建Bitmap索引

create bitmap index 索引名 on 表名(字段) online

tablespace 表空间 ;

删除索引

drop index 索引名;

查看该表的所有索引

select * from all_indexes where table_name = '表名';

查看该表的所有索引列

select* from all_ind_columns where table_name = '表名';

四、查看索引是否生效

生成查询计划

explain plan for

select * from t_call_records where t_bjhm='123456'

查看执行计划结果

select * from table(dbms_xplan.display)

五、索引使用时的注意点

order by、group by使用索引的前提条件:

1.order by、group by中所有的列必须包含在相同的索引中并保持在索引中的排列顺序;

2.order by、group by中所有的列必须定义为非空

不走索引的几种情况:

1.where子句中使用 is null 和 is not null

2.where子句中使用函数

3.使用like ‘%T’ 进行模糊查询

4.where子句中使用不等于操作(包括:<>, !=, not colum >= ?, not colum <= ? ,可以使用or代替)

5.比较不匹配数据类型,例如:select * from tablewhere jlbh = 1;jlbh为varchar2类型字段

6.索引列上不要使用函数,如to_char、to_date等,如需频繁使用可以建立函数索引

7.用UNION替换OR(适用于索引列),对索引列使用OR将造成全表扫描

8.SELECT子句中避免使用()ORACLE在解析的过程中, 会将’’ 依次转换成所有的列名, 这个工作是通过查询数据字典完成的, 这意味着将耗费更多的时间

oracle索引对模糊查询,Oracle索引相关推荐

  1. Oracle模糊查询之(2.如何测试模糊查询的时间及使用是否使用索引)反向索引与模糊查询

    反向索引与模糊查询 反向索引应用于前模糊的用法简介: 1.反向索引 SQL> create index ind_name on atest reverse(name); SQL>  sel ...

  2. 0227windows下模糊查询oracle事件的脚本

    [20170227]windows下模糊查询oracle事件的脚本.txt $ cat ooerr.bat @@echo off rem disp oracle error rem /bin/grep ...

  3. mysql模糊查询之索引优化

    mysql模糊查询之索引优化 三表连查之模糊查询索引优化 注:具体用法10和11步骤. 1.t_project表 DROP TABLE IF EXISTS `t_project`; CREATE TA ...

  4. 模糊查询 oracle语句,Oracle特殊符号的模糊查询

    oracle中带有特殊符号的模糊查询 首先讲一下Oracle模糊查询 Oracle模糊查询可使用的通配符,Oralce中SQL语句提供了四种匹配模式: %   零或者多个字符 _    单一任何字符( ...

  5. oracle数据库怎么分组查询,oracle数据库之分组查询

    本章内容和大家分享的是数据当中的分组查询.分组查询复杂一点的是建立在多张表的查询的基础之上,(我们在上一节课的学习中已经给大家分享了多表查询的使用技巧,大家可以自行访问:多表查询1  多表查询2)而在 ...

  6. oracle数据库使用hint来让模糊查询走索引

    在没有创建数据直方图之前,查询优化器是cbo,可能不会选择代价最低(效率最高)的方式查询. 先创建表 --日语假名表 CREATE TABLE JAPANESE_SOUNDMARK ( ID INTE ...

  7. oracle右模糊查询,oracle模糊查询

    leekiang 阅读(2036) 评论(1)  编辑  收藏 所属分类: oracle 需要查询某字段是否包含一个值111是否存在于1111,2111,1112,1121,1113,中 , 因为根据 ...

  8. oracle千万级数据模糊查询,oracle模糊查询效率拔高

    分2种思路考虑模糊查询的效率的提高.--注:专注处理百万级数据量,小量数据就算了 第一种:把数据存到业务内存中,通过查询内存提高效率.(要求:硬件内存要高) 1,如果想实现内存动态数据,可以监控表数据 ...

  9. oracle怎么优化模糊查询性能,ORACLE模糊查询优化浅谈

    模糊查询是数据库查询中经常用到的,一般常用的格式如下: (1)字段  like '%关键字%'   字段包含"关键字"的记录   即使在目标字段建立索引也不会走索引,速度最慢   ...

最新文章

  1. 如何将广告始终定位到网页右下角
  2. 吴恩达:数据集的规模和学习机制都很重要!
  3. python分离文件名和路径_python 分离文件名和路径以及分离文件名和后缀的方法...
  4. php获取数据库的表名和字段名
  5. Mysql取分组中前N条记录
  6. 招商银行王龙:金融科技银行数据架构设计的13条守则(含PPT)
  7. 支付宝:预计三年内智能出行将覆盖全国
  8. 安卓最好的浏览器_今日软件 | AI一键抠图、隐私保护工具、全能下载器、安卓启动器、茄子快传、迅雷、批量字符替换、傲游浏览器、全局负一屏...
  9. Java-虚拟机-垃圾收集器/垃圾收集算法/GCROOT根
  10. vue dve环境static无法被外部访问_vue项目性能优化(代码层面)
  11. 【笔记】解析MP3文件信息
  12. Thinking in Java 11.3 添加一组元素
  13. 阿里云高级技术专家王晨:云原生数据库PolarDB技术解密
  14. python:多维数组变一维数组
  15. oracle序列建同义词,oracle序列创建同义词
  16. MariaDB数据存储引擎的选择
  17. sql server 取当天所在第几周
  18. 书包网小说多线程爬虫
  19. java什么是类型擦除_Java 泛型,你了解类型擦除吗?
  20. “下周集中办公,你该如何防护?”一位资深HR的10个建议

热门文章

  1. [云炬创业管理笔记]第四章把握创业机会测试4
  2. [云炬创业管理笔记]第三章测试4
  3. 从马克思哲学客观原理角度——反思大学生创业2017-12-15
  4. 获得北大新材料学院夏令营offer的艰险历程(附面试答辩PPT)
  5. FFTW在VS中集成与测试详解
  6. aspx页面中使用%= %的注意事项
  7. 关于ASp.net中的session失效问题的解决办法之一
  8. 有关 Form 的一些代码的标准写法
  9. 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
  10. math.h头文件中声明了常用的一些数学运算