其他数据对象-----索引(10级学员 林常禹课堂笔记)
2012-03-20 22:24
211 查看
其他数据对象-----索引
什么是索引?它是一种用于提升查询效率的数据库对象。
索引的分类
索引分为两种,分别为唯一性索引和非唯一性索引。
索引的优点
1.加快数据的检索速度;
2.创建唯一性索引,保证数据库表中每一行数据的唯一性;
3.能够加快表和表之间的连接。
索引的缺点
1. 索引需要占用物理空间
2. 当对表中的数据进行增加、删除和修改的时候,索引也要动态的 维护,降低了数据的维护速度。
创建索引的目的
1. 维护被索引列的唯一性
2. 提供快速访问表中数据的策略
创建索引需要注意的原则
1. 如果某一个表,对这张表的大部分操作是进行查询(select),那么建议在这个表中的指定列添加索引
2. 如果某一个表中的某一列,在where子句中频繁出现,那么建议在该列指定索引
3. 在选择性高的列上创建索引(索引选择性最高是1,如primary key)。
4. 表中的数据量比较大的(大于5M),建议为该表建立索引
使用索引的建议和注意
1. 查询结果是所有数据行的5%以下时,建议使用索引查询
2. Where条件中经常使用到某个表的多列时,使用复合索引要比单列索引块
3. 在insert、update、delete操作较多的列中,不建议使用索引,因为更新表的同时,索引会同步更新,所以会影响执行效率
4. Where子句中的字段,必须是复合索引的第一个字段
例:一个索引是按f1,f2,f3次序建立的,而where子句为f2=XXX,则因为f2不是索引的第一个字段而无法使用该索引
5. 当在where子句中使用某个索引的字段时,要尽可能将操作都移至等号右边
6. 一部分操作符会对oracle是否使用索引造成影响,以下操作会组织oracle使用索引:is null;date_col+0;char_col||’’;to_char;to_number,to_date等
如何创建一个索引
Create index 索引名 on 表名(列名1,[列名2,…]);
注:建立索引时,字段的顺序组合很重要,一般情况下,最常访问字段,放在最前面
索引的存储
索引和表是单独存在的,在为索引指定空间的时候,不要将索引的表和指向的表放入同一个空间,以免造成I/O冲突。
删除索引
Drop index 索引名;
相关文章推荐
- oracle其他数据对象 --- 视图(10级学员 韩晓爽课堂总结)
- Oracle常见数据库对象—序列(10级学员 宋立兴课堂笔记)
- Spring bean生命周期UML图示(10级学员 林常禹课堂总结)
- jQuery插件应用之--- 选项卡插件的使用(10级学员 韩晓爽课堂笔记)
- jQueryUI中Datepicker(日历)插件的介绍和使用(10级学员 郞志课堂笔记)
- Oracle其他数据对象 -- 索引
- JQueryUI插件----手风琴效果(10级学员 赵成举课堂笔记)
- 通过工具来监控webService请求和返回时的数据(10级学员 韩晓爽课堂总结)
- Ext JS框架入门(10级学员 刘志飞课堂笔记)
- 面向对象的程序设计学习笔记-17-静态成员数据
- springaop术语概述及aop中常见通知的实现(10级学员 庞丽课堂总结)
- Android笔记 Application对象的使用-数据传递以及内存泄漏问题
- HTML5第8次课堂笔记( 模拟form表单提交数据,xml的解析,jQuery的Ajax方法使用, mui的ajax)
- Android笔记 Application对象的使用-数据传递以及内存泄漏问题
- openerp学习笔记 数据合法性约束(对象约束+数据库约束)
- Java学习课堂笔记——面向对象程序设计的基本概念
- Java笔记5 IO<1>其他对象以及IO流
- PB数据窗口对象之计算域、排列、过滤、分组和其他
- 笔记之Oracle 数据字典视图:v$fixed_table里包含了三类对象:X$对象、基于X$表的GV$和V$视图
- java笔记26 IO流其他对象