数据库中的索引:
一旦创建了表的索引,oracle将自动使索引与表保持同步。任何insert、update、delete操作将会自动改变索引,而且如果现有索引包含select语句所需的
列,那么所有的select操作也会自动使用索引。
a.何时使用索引:
insert是会延长时间、因为索引有索引表。向表中添加索引会导致插入操作的时间会比原来多出2.5倍(单个索引),因此,索引的使用是一种权衡。
b.如何建立索引:
创建索引
create index 索引名 on 表名 (first_column_name,second_column_name);
eg: create index plsql101_person_code_index on plaql101_person(person_code);
这是复合索引,复合索引只是基于表中多个列的索引。当表中包含的列有可能一起用于where子句时,用复合索引比较合适。只要where子句包含复合索引中
的任意一列或第一列,Oracle将会使用索引并且快速返回查询结果。可以将索引中的列以任意顺序排列,而不一定按照表中的顺序。因此,如果需要重新排列
,则可以将第一列变成where子句中最有可能调用的列,复合索引中的列不一定需要按照来源表中的顺序依次排列。
oracle索引中包含的最大列数为32.
有B树索引 和 位图索引 两种。
一旦创建了表的索引,oracle将自动使索引与表保持同步。任何insert、update、delete操作将会自动改变索引,而且如果现有索引包含select语句所需的
列,那么所有的select操作也会自动使用索引。
a.何时使用索引:
insert是会延长时间、因为索引有索引表。向表中添加索引会导致插入操作的时间会比原来多出2.5倍(单个索引),因此,索引的使用是一种权衡。
b.如何建立索引:
创建索引
create index 索引名 on 表名 (first_column_name,second_column_name);
eg: create index plsql101_person_code_index on plaql101_person(person_code);
这是复合索引,复合索引只是基于表中多个列的索引。当表中包含的列有可能一起用于where子句时,用复合索引比较合适。只要where子句包含复合索引中
的任意一列或第一列,Oracle将会使用索引并且快速返回查询结果。可以将索引中的列以任意顺序排列,而不一定按照表中的顺序。因此,如果需要重新排列
,则可以将第一列变成where子句中最有可能调用的列,复合索引中的列不一定需要按照来源表中的顺序依次排列。
oracle索引中包含的最大列数为32.
有B树索引 和 位图索引 两种。