oracle索引对模糊查询,Oracle索引
一、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索引相关推荐
- Oracle模糊查询之(2.如何测试模糊查询的时间及使用是否使用索引)反向索引与模糊查询
反向索引与模糊查询 反向索引应用于前模糊的用法简介: 1.反向索引 SQL> create index ind_name on atest reverse(name); SQL> sel ...
- 0227windows下模糊查询oracle事件的脚本
[20170227]windows下模糊查询oracle事件的脚本.txt $ cat ooerr.bat @@echo off rem disp oracle error rem /bin/grep ...
- mysql模糊查询之索引优化
mysql模糊查询之索引优化 三表连查之模糊查询索引优化 注:具体用法10和11步骤. 1.t_project表 DROP TABLE IF EXISTS `t_project`; CREATE TA ...
- 模糊查询 oracle语句,Oracle特殊符号的模糊查询
oracle中带有特殊符号的模糊查询 首先讲一下Oracle模糊查询 Oracle模糊查询可使用的通配符,Oralce中SQL语句提供了四种匹配模式: % 零或者多个字符 _ 单一任何字符( ...
- oracle数据库怎么分组查询,oracle数据库之分组查询
本章内容和大家分享的是数据当中的分组查询.分组查询复杂一点的是建立在多张表的查询的基础之上,(我们在上一节课的学习中已经给大家分享了多表查询的使用技巧,大家可以自行访问:多表查询1 多表查询2)而在 ...
- oracle数据库使用hint来让模糊查询走索引
在没有创建数据直方图之前,查询优化器是cbo,可能不会选择代价最低(效率最高)的方式查询. 先创建表 --日语假名表 CREATE TABLE JAPANESE_SOUNDMARK ( ID INTE ...
- oracle右模糊查询,oracle模糊查询
leekiang 阅读(2036) 评论(1) 编辑 收藏 所属分类: oracle 需要查询某字段是否包含一个值111是否存在于1111,2111,1112,1121,1113,中 , 因为根据 ...
- oracle千万级数据模糊查询,oracle模糊查询效率拔高
分2种思路考虑模糊查询的效率的提高.--注:专注处理百万级数据量,小量数据就算了 第一种:把数据存到业务内存中,通过查询内存提高效率.(要求:硬件内存要高) 1,如果想实现内存动态数据,可以监控表数据 ...
- oracle怎么优化模糊查询性能,ORACLE模糊查询优化浅谈
模糊查询是数据库查询中经常用到的,一般常用的格式如下: (1)字段 like '%关键字%' 字段包含"关键字"的记录 即使在目标字段建立索引也不会走索引,速度最慢 ...
最新文章
- 如何将广告始终定位到网页右下角
- 吴恩达:数据集的规模和学习机制都很重要!
- python分离文件名和路径_python 分离文件名和路径以及分离文件名和后缀的方法...
- php获取数据库的表名和字段名
- Mysql取分组中前N条记录
- 招商银行王龙:金融科技银行数据架构设计的13条守则(含PPT)
- 支付宝:预计三年内智能出行将覆盖全国
- 安卓最好的浏览器_今日软件 | AI一键抠图、隐私保护工具、全能下载器、安卓启动器、茄子快传、迅雷、批量字符替换、傲游浏览器、全局负一屏...
- Java-虚拟机-垃圾收集器/垃圾收集算法/GCROOT根
- vue dve环境static无法被外部访问_vue项目性能优化(代码层面)
- 【笔记】解析MP3文件信息
- Thinking in Java 11.3 添加一组元素
- 阿里云高级技术专家王晨:云原生数据库PolarDB技术解密
- python:多维数组变一维数组
- oracle序列建同义词,oracle序列创建同义词
- MariaDB数据存储引擎的选择
- sql server 取当天所在第几周
- 书包网小说多线程爬虫
- java什么是类型擦除_Java 泛型,你了解类型擦除吗?
- “下周集中办公,你该如何防护?”一位资深HR的10个建议
热门文章
- [云炬创业管理笔记]第四章把握创业机会测试4
- [云炬创业管理笔记]第三章测试4
- 从马克思哲学客观原理角度——反思大学生创业2017-12-15
- 获得北大新材料学院夏令营offer的艰险历程(附面试答辩PPT)
- FFTW在VS中集成与测试详解
- aspx页面中使用%= %的注意事项
- 关于ASp.net中的session失效问题的解决办法之一
- 有关 Form 的一些代码的标准写法
- 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和。
- math.h头文件中声明了常用的一些数学运算