索引
起名规则:索引名_表名_列名
1) 索引是数据库对象之一,用于加快数据的检索,类似于书籍的索引(数据库对象有6个(用户,表,视图,索引,序列,触发器)
2) 索引是建在表上的可选对象
索引的关键在于通过一组排序后的索引键来取代默认的全表扫描检索方式,从而提高检索效率
3) 索引在逻辑上和物理上都有相关的表和数据无关
当创建或者删除一个索引时,不会影响基本的表
4) 索引一旦建立,在表上进行DML操作时(例如在执行插入,修改或者删除相关操作时)
oracle会自动管理索引(大部分情况都会降低效率);
5) 索引对用户是透明的,无论表上是否有索引,sql语句用法不变
6) oracle 创建主键时会自动在读到上创建索引(B-TREE)索引
1)全表扫描:将表的每一条数据都挨个扫一遍,默认的扫描方式
2)索引扫描:在表中的列上建立索引,先对数据进行排序,将该数据以及对应的rowid存在一条索引条目(数据+rowid)
3)检索数据时,会先对索引进行检索,然后直接定位到数据所在的rowid
--冷知识 rowid对我们没有什么太大作用,但是检索速度很快
索引的分类
1.按照存储形式
1)B树索引 2)位图索引 3)反向键索引 4)基于函数索引
2.按照唯一性
1ÿ