索引简介
1、索引是数据库对象之一,用于加快数据的检索,类似于书籍的索引。在数据库中索引可以减少数据库程序查询结果时需要读取的数据量,类似于在书籍中我们利用索引可以不用翻阅整本书即可找到想要的信息
2、索引是建立在表上的可选对象;索引的关键在于通过一组排序后的索引键来取代默认的全表扫描检索方式,从而提高检索效率
3、索引在逻辑上和物理上都与相关的表和数据无关,当创建或者删除一个索引时,不会影响基本的表
4、索引一旦建立,在表上进行DML操作时(例如在执行插入、修改或者删除相关操作时),Oracle会自动管理索引,索引删除,不会对表产生影响
5、索引对用户是透明的,无论表上是否有索引,SQL语句的用法不变
6、Oracle创建主键时会自动在该列上创建索引
索引原理
1、若没有索引,搜索某个记录时(例如查找name=’wish’)需要搜索所有的记录,因为不能保证只有一个wish,必须全部搜索一遍
2、若在name上建立索引,Oracle会对全表进行一次搜索,将每条记录的name值哪找升序排列,然后构建索引条目(name和rowid),存储到索引段中,查询name为wish时即可直接查找对应地方
3、创建了索引并不一定就会使用,Oracle自动统计表的信息后,决定是否使用索引,表中数据很少时使用全表扫描速度已经很快,没有必要使用索引
索引使用(创建、修改、删除、查看)
1、创建索引语法
CREATE [UNIQUE] | [BITMAP] INDEX index_name --unique表示唯一索引 ON table_name([column1 [ASC|DESC],column2 --bitmap,创建位图索引 [ASC|DESC],…] | [express]) [