群集与非群集索引
索引在任何数据库中都非常重要。它们用于提高从表中检索数据的性能。它们在逻辑和物理上独立于相关表中的数据。因此,可以删除、重新创建和重建索引,而不会影响基表的数据。在**、更新和删除相关表时,oracleserver可以自动维护其索引,而无需DBA的参与。有几种索引类型。这里,有一些。
1树索引
2位图索引
三。基于函数的索引
4反转键索引
5B树聚类索引
什么是非聚类索引?
在以上索引类型中,以下是非**索引。
•B树索引
•位图索引
•基于功能的索引
•反向键索引
B树索引是数据库中使用最广泛的索引类型。如果对数据库发出CREATE INDEX命令,而不指定类型,则oracleserver将创建一个b树索引。当在特定列上创建b树索引时,oracleserver存储该列的值并保留对表中实际行的引用。
位图索引是在列数据不是很有选择性时创建的。这意味着,列数据的基数很低。它们是专门为数据仓库设计的,在高度可更新或事务性表上使用位图索引是不好的。
函数索引来自oracle8i。这里,索引列中使用了一个函数。因此,在函数索引中,列数据不是按正常方式排序的。它在应用函数后对列的值进行排序。当使用select查询的WHERE close函数时,这些非常有用。
反向键索引是一种非常有趣的索引类型。假设一个列包含许多唯一的字符串数据,如“cityA”、“cityB”、“cityC”…等等。所有的值都有一个模式。前四个字符是相同的,后面的部分将更改。因此,当在该列上创建REVERSE key index时,Oracle将反转字符串并将其恢复到b树索引中。
上述索引类型是非**索引。这意味着,索引数据存储在表之外,并且保留对表的排序引用。
什么是**索引?
**索引是一种特殊类型的索引。它按照物理存储表数据的方式存储数据。因此,一个表不能有多个**索引。一个表只能有一个**索引。
**索引和非**索引有什么区别?1表只能有一个**索引,但一个表中最多可以有249个非**索引。2。创建主键时自动创建**索引,但在创建唯一键时创建非**索引。3。**索引的逻辑顺序与表数据的物理顺序匹配,但在非**索引中,它不匹配。 |