为什么主键会自动创建聚集索引

2024-01-16

当我在oracle表中创建主键时,为什么它默认创建“聚集”索引?创建主键时自动创建聚集索引的原因是什么?难道Oracle设计者这样设计Oracle只是他的喜好吗?


Oracle 将创建一个索引来管理没有预先存在的索引适用的唯一约束。如果没有索引,每当有人尝试插入或删除行(或更新 PK)时,Oracle 就需要序列化操作(例如表锁)。

与 MS-SQL Server 相反,该索引不是聚集的在堆表上(默认表组织),即该索引不会改变底层表结构和自然顺序。当 Oracle 创建索引时,行不会重新排序。该索引将是B树索引 http://docs.oracle.com/cd/E11882_01/server.112/e40540/indexiot.htm#sthref297并将作为一个单独的实体存在,其中每个条目都指向主表中的一行。

然而,Oracle 没有 MS SQL 那样的聚集索引索引组织表 http://docs.oracle.com/cd/E11882_01/server.112/e40540/indexiot.htm#CBBJEBIH与簇索引表共享一些属性。 PK 是此类表的组成部分,必须在创建过程中指定。

(甲骨文也有表簇 http://docs.oracle.com/cd/E11882_01/server.112/e40540/glossary.htm#CHDJGGGF,但它们是完全不同的概念)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么主键会自动创建聚集索引 的相关文章

随机推荐