Oracle索引概述
Oracle序列有两个作用
1、提供主键和唯一键约束:外键约束在父表中定义了,所以在子表中不是必须的,但是出于性能的考虑,通常也在子表中的外键约束列建立索引;
2、提高系统的系能:语句中有where子句、语句中带有排序操作,语句中带有表连接的操作
索引的类型:
B*Tree Index:默认类型,当一个表很大,而查询的数据只占表全部数据中很小的一部分的时候,这种索引很有效;
bitmapindex:
B*Tree Index:
通常,如果一个查询需要取出的数据超过全表数据的2%--4%,那么全表扫描会更快;
还有一种特殊的对NULL值的检索会用到全表扫描,因为NULL值不会进入B树索引,如:
select * from emp where last_name is null; ---这条语句将使用全表扫描;
对B树索引应用场合的定义:
列中的候选对象比较多,表有很多的行,使用了where子句和JOIN条件;
B树索引不太适合数据仓库的应用;
位图索引
位图索引可以对null值进行
对位图索引应用场合的定义:
列中的候选对象比较少,表中有很多的行,对表的操作经常使用布尔逻辑;
索引类型选项
- unique or nonunique
- reverse key:有效的将索引键分散开;
- compressed:重复的索引键值只存储一次;
- composite
- function based
- ascending or descending
这六个选项对B树索引都可以使用,但是只有最后三项可以对位图索引使用;
thedafault type of indexx is a nonunique, noncompressed, non-reverse key B*Treeindex
itis not possible to create a uniquebitmap index;
建立索引
--创建索引
CREATE UNIQUE INDEXdept_i1 ON detp(deptno);
CREATE UNIQUE INDEXemp_i1 ON emp(empno);
CREATE INDEX emp_i2ON emp(first_name,last_name);
CREATE BITMAP INDEXemp_i3 ON emp(deptno);
ALTER TABLE dept ADDCONSTRAINT dept_pk PRIMARY KEY(deptno);
ALTER TABLE emp ADDCONSTRAINT emp_pk PRIMARY KEY(empno);
ALTER TABLE emp ADDCONSTRAINT emp_fk FOREIGN KEY(deptno) REFERENCES dept(deptno);
修改和删除索引
ALTER INDEX主要被管理员使用来调整索引的物理属性,不能被用来调整索引的逻辑属性
如果想修改一个索引,请先删除,然后重建:
drop index emp_i2;
createindex emp_i2 on emp(first_name,last_name, dob);
当表被删除的时候,建立在表之上的约束条件和索引也一并删除;
如果索引在创建约束条件是隐式创建的,删除约束条件的同时,索引也自动删除
显示创建的索引将不会被删除;
Oracle索引概述相关推荐
- Oracle 索引概述
Oracle 提供了多种不同类型的索引以供使用.简单地说,Oracle 中包括如下索引: B*树索引:这些是我所说的"传统"索引.到目前为止,这是 Oracle 和大多数其他数据库 ...
- 各种Oracle索引类型介绍
各种Oracle索引类型介绍 逻辑上: Single column 单行索引 Concatenated 多行索引 Unique 唯一索引 NonUnique 非唯一索引 Function-based函 ...
- Oracle索引扫描方式
文章目录 0.参考资料 1.索引扫描方式和索引类型概述 2.索引唯一扫描(index unique scan) 3.索引范围扫描(index range scan) 4.索引跳跃扫描(index sk ...
- Oracle索引梳理系列(八)- 索引扫描类型及分析(高效索引必备知识)
理解oracle索引扫描类型的特点以及具体触发的条件,对于通过合理地使用索引,进行sql优化至关重要(例如组合索引的引导列的选择问题). 在总结索引扫描类型前,需要再次强调关于索引特点的几个关键点: ...
- Oracle索引梳理系列(六)- Oracle索引种类之函数索引
函数索引 1.1 概述 在实际应用中,当条件列使用函数运算进行数据匹配时,即使该列建立了索引,索引也不会被使用. 如下示例,其中在owner列上建立一个普通b-tree索引,观 察两种查询方式(不使用 ...
- Oracle索引梳理系列(二)- Oracle索引种类及B树索引
版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...
- Oracle索引详解(索引的原理,创建索引,删除索引,修改索引等)
Oracle索引详解 一.索引概述 Oracle作为关系型数据库,用户查找数据与行的物理位置无关,表中的每一行均用一个ROWID来标识,当Oracle数据库中存储海量的记录时,就意味着有大量的ROWI ...
- oracle 与indexc函数,oracle索引知识小结
索引概述 索引是关系数据库中用于存放每一条记录的一种对象,主要目的是加快数据的读取速度和完整性检查.建立索引是一项技术性要求高的工作.一般在数据库设计阶段的与数据库结构一道考虑.应用系统的性能直接与索 ...
- [转载]oracle索引的简单总结
原文地址:oracle索引的简单总结作者:kindle 一.索引的概念: 数据库的索引类似于书籍的索引.在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息.在数据库中,索引也允许数据库程 ...
最新文章
- 深入理解javascript选择器API系列第二篇——getElementsByClassName
- 使用snmp对DNS服务器进行图形化监控
- hashcode值一样对象一定相同吗_HashMap实现原理分析(面试问题:两个hashcode相同 的对象怎么存入hashmap的)...
- Linux 用户组相关命令
- 使用Nexus配置Maven私有仓库
- JAX-RS协议说明
- win10安装 MySQL安装教程
- Addr、@运算符与Pointer类型
- 27代理模式(Proxy Pattern)
- 如何理解 Graph Convolutional Network(GCN)?
- 计算机网络课设题目java_java课程设计参考题目
- 面试官系统精讲Java源码及大厂真题 - 01 开篇词:为什么学习本专栏
- 产品研发过程管理专题——软件工程(软件目的需求开发与管理)
- 按周汇总_有合并单格及空行的数据如何快速汇总?简单几步快速搞定
- java复试容易被刷掉吗_推免生一定被录取吗复试会被刷吗
- Swift之 ? 和 !
- ADAS/AD控制器模块开发03 - 系统架构设计及通用需求定义
- Python数据库sqlite3详解
- 概率论与数理统计——卡方分布的期望与方差
- pearson相关性