1

在 Oracle 中,如果我在列上创建索引,这是否意味着数据将根据该列自动排序?否则如何根据索引搜索数据更快?如果它没有排序,它是随机的......所以使用列作为 where 子句应该不会更快。

4

1 回答 1

2

如果创建索引组织表,表将根据索引进行物理排序,但这不是通常的索引类型

当您执行这样的“常规”索引时:

CREATE INDEX myIndex ON myTable(myColumn)

...它不会更改表中行的顺序。相反,它会创建一个单独的索引对象。该索引是有序的,搜索速度更快,因为 Oracle 在索引中搜索而不是扫描表,并且索引的结构针对快速查找条目进行了优化。

每个索引条目都包含一个指向表的指针,因此一旦 Oracle 完成索引搜索,它就有一个表行指针列表,并使用这些指针来访问表。

我在这个答案顶部给出的链接也涵盖了“常规”索引,并详细解释了所有这些。

于 2013-07-30T02:21:38.493 回答