1.问题:
当数据库表中存在很多条记录,如大于10万条时,查询速度便成为一个问题2.分析:
在字典中查询指定偏旁的汉字时,先查询目录中指定的偏旁位置,在查询指定笔画的汉字,找到汉字后根据页码找到汉字
在书中查询某内容时,首先在目录中查询所需知识点,然后根据目录中提供的页码找到要查询内容,大大缩短了查询时间
3.解决:可以建立类似目录的数据库对象,实现数据快速查询,这就是索引
索引类似字典的和课本目录,是为了加快对数据的搜索速度而设立的。索引有自己专门的存储空间,与表独立存放。
索引类型默认采用B树数据结构,数据全部集中在叶子节点
使用索引进行查找
4.索引的作用:在数据库中用来加速对表的查询,通过使用快速路径访问方法快速定位数据,减少了磁盘的I/O
5.索引创建以后,在用户撤销它之前并不会用到该索引的名字,但是索引在用户查询时会自动起作用。
6.索引的创建有两种情况
自动: 当在表上定义一个PRIMARY KEY 或者UNIQUE 约束条件时,Oracle数据库自动创建一个对应的唯一索引.
手动: 用户可以创建索引以加速查询
7.位图索引
小例子:应用于数据量取值范围比较小的情况。例如(性别,婚姻状况)。
--【索引】
--创建索引
CREATE INDEX IDX_TEMP_EMPNO ON TEMP(EMPNO);
--创建位图索引
CREATE BITMAP INDEX IDX_TEMP_EMPNO ON TEMP(EMPNO);
--当数据库表中识别出数据量特别大时,自动调用索引。
--删除索引
DROP INDEX IDX_TEMP_EMPNO;