建站优化

当前位置:

oracle 添加索引

浏览量:58次

oracle 添加索引

oracle添加索引方法是什么呢?不知道的小伙伴来看看阳泰小编今天的分享吧!

1、oracle中索引说明:

1)索引是数据库对象之一,用于加快数据的检索,类似于书籍的索引。在数据库中索引可以减少数据库程序查询结果时需要读取的数据量,类似于在书籍中我们利用索引可以不用翻阅整本书即可找到想要的信息。

2)索引是建立在表上的可选对象;索引的关键在于通过一组排序后的索引键来取代默认的全表扫描检索方式,从而提高检索效率

3)索引在逻辑上和物理上都与相关的表和数据无关,当创建或者删除一个索引时,不会影响基本的表;

4)索引一旦建立,在表上进行DML操作时(例如在执行插入、修改或者删除相关操作时),oracle会自动管理索引,索引删除,不会对表产生影响

5)索引对用户是透明的,无论表上是否有索引,sql语句的用法不变

6)oracle创建主键时会自动在该列上创建索引

2、索引原理

若没有索引,搜索某个记录时(例如查找name='wish')需要搜索所有的记录,因为不能保证只有一个wish,必须全部搜索一遍

若在name上建立索引,oracle会对全表进行一次搜索,将每条记录的name值哪找升序排列,然后构建索引条目(name和rowid),存储到索引段中,查询name为wish时即可直接查找对应地方

创建了索引并不一定就会使用,oracle自动统计表的信息后,决定是否使用索引,表中数据很少时使用全表扫描速度已经很快,没有必要使用索引。

3、oracle中添加索引方法:

CREATE [UNIQUE] | [BITMAP] INDEX index_name  --unique表示唯一索引

ON table_name([column1 [ASC|DESC],column2    --bitmap,创建位图索引

[ASC|DESC],…] | [express]) [TABLESPACE tablespace_name]

[PCTFREE n1] 

指定索引在数据块中空闲空间

[STORAGE (INITIAL n2)]

[NOLOGGING] 

表示创建和重建索引时允许对表做DML操作,默认情况下不应该使用

[NOLINE]

[NOSORT];

表示创建索引时不进行排序,默认不适用,如果数据已经是按照该索引顺序排列的可以使用

[声明]本网转载网络媒体稿件是为了传播更多的信息,此类稿件不代表本网观点,本网不承担此类稿件侵权行为的连带责任。故此,如果您发现本网站的内容侵犯了您的版权,请您的相关内容发至此邮箱【779898168@qq.com】,我们在确认后,会立即删除,保证您的版权。