关于Oracle的索引
什么是索引 索引是数据库对象之一,合理的使用索引可以大大降低 i/o 次数用于加快数据的检索,类似于书籍的索引。在数据库中索引可以减少数据库程序查询结果时需要读取的数据量,类似于在书籍中我们利用索引可以不用翻阅整本书即可找到想要的信息。 索引是建立在表上的可选对象;索引的关键在于通过一组排序后的索引键来取代默认的全表扫描检索方式,从而提高检索效率 索引在逻辑上和物理上都与相关的表和数据无关,当创建或者删除一个索引时,不会影响基本的表; 索引一旦建立,在表上进行 DML 操作时(例如在执行插入、修改或者删除相关操作时),oracle 会自动管理索引,索引删除,不会对表产生影响 索引对用户是透明的,无论表上是否有索引,sql 语句的用法不变 oracle 创建主键时会自动在该列上创建索引 但是在对表进行DML操作,也就是删除,新增,修改时,由于要表的存放位置记录到索引项中 而会降低一些速度。 注意 : 1.一个基表不能建太多的索引; 2.空值不能被索引 3.只有唯一索引才真正提高速度,一般的索引只能提高 30%左右。 建立索引 CREATE [UNIQUE] | [BITMAP] INDEX index_name --unique 表示唯一索引 ON table_name([column1 [ASC|DESC],column2 --bitmap,创建位图索引 [ASC|DESC],…]