Vic*_*tor 3 oracle indexing database-design primary-key clustered-index
当我在oracle表中创建主键时,为什么默认情况下会创建一个"聚簇"索引.在创建主键时自动创建聚簇索引的原因是什么?是不是只是Oracle设计师的偏好,他以这种方式设计了oracle?
Vin*_*rat 15
Oracle将创建一个索引来监控唯一约束,其中没有预先存在的索引是合适的.如果没有索引,只要有人试图插入或删除行(或更新PK),Oracle就需要序列化操作(例如表锁).
与MS-SQL Server相反,此索引不会聚集在堆表(默认表组织)上,即此索引不会更改基础表结构和自然顺序.当Oracle创建索引时,不会重新排序行.索引将是B树索引,并且将作为单独的实体存在,其中每个条目指向主表中的行.
Oracle没有聚集索引作为MS SQL,但是索引组织的表与聚簇索引表共享一些属性.PK是此类表的组成部分,必须在创建期间指定.
(Oracle也有表集群,但它们是完全不同的概念).