Oracle DB 索引
索引是数据库对象,可以通过创建索引来提高一些查询的性能。在你创建主键或唯一约束条件时,服务器会同时自动创建索引。
索引具有以下特点:
? 是一个方案对象
? Oracle Server 可用来通过指针加快行检索速度
? 可通过使用快速路径访问方法迅速找到数据来减少磁盘的输入/ 输出(I/O)
? 与建立索引的表无关
? 由Oracle Server 自动使用和维护
Oracle Server 索引是一个方案对象,可以通过指针加快行检索速度。可以显式创建索引,也可以自动创建索引。如果没有在列上建立索引,则会对整个表进行扫描。
使用索引可以直接而快速的访问表中的行。其作用是通过使用索引路径快速找到数据来减少磁盘的I/O。索引由Oracle Server 自动使用和维护。创建索引之后,就不需要用户直接执行任何操作了。
索引在逻辑上和实际上都独立于建立索引的表。这意味着可以在任何时候创建或删除索引,而不会对基表或其它索引产生任何影响。
注:在删除表时,会另外删除相应的索引。
? 自动创建:如果在表定义中定义了PRIMARY KEY 或UNIQUE 约束条件,则会自动创建一个唯一的索引。
? 手动创建:用户可以通过对列创建非唯一的索引来加快行访问速度。
可以创建两种类型的索引。
? 唯一索引:如果你在表中定义的列具有PRIMARY KEY 或UNIQUE 约束条件,则Oracle Server 会自动创建此类型的索引。索引的名称和约束条件的名称相同。
? 非唯一索引:这种类型的索引可以由用户创建。例如,可以通过在查询中为联接创建一个FOREIGN KEY 列索引来提高检索速度。
注:可以手动创建唯一索引,但是建议你创建唯一约束条件,这样可隐式创建唯一索引。
? 对一个或多个列创建索引:
CREATE UNIUQE | BITMAP INDEX <schema>.<index_name>
ON <schema>.<table_name>
(<column_name> | <expression> ASC | DESC,
<column_name> | <expression> ASC | DESC,...)
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。