小学还是中学?

时间:2016-07-29 10:13:25

标签: sql database oracle mysqli oracle-sqldeveloper

我的问题是Dense和Sparse索引是主要还是次要?如何确定其主要或次要指标?

3 个答案:

答案 0 :(得分:0)

主要索引是唯一的,辅助索引不必是唯一的。

稀疏索引不会存储每个可能的值,密集索引会存储每个可能的值。

因此,主索引必须密集才能工作,根据需要,辅助索引可以是密集的或稀疏的。密集索引使用更多空间来存储数据,而稀疏索引更慢。

回答类似的问题here

答案 1 :(得分:0)

在 RDBMS 中,主索引可以是密集的或稀疏的。这取决于您的要求。

主索引:在按顺序排列的文件中,搜索关键字指定文件顺序的索引

二级索引:一种索引,其搜索关键字指定的顺序不同于文件的顺序。

密集索引:为文件中的每个搜索键值出现索引记录。

稀疏索引:仅包含一些搜索键值的索引记录。

对于稀疏索引,一个很好的权衡是为文件中的每个块保留一个索引条目。当我们从存储中读取一个条目时,我们获取整个块并遍历它。我们可以跳过包含在该块中的映射。

对于主索引,我们可以有一个密集或稀疏的索引。

但是对于二级索引,必须要有密集索引,因为二级索引的数据条目不是按顺序排列的。保持稀疏索引的要点是我们应该能够在它的帮助下找出其他搜索键。这只能在文件有序的情况下实现。这就是为什么我们需要为密集索引的二级索引中的每个搜索键进行索引映射。

答案 2 :(得分:-1)

主索引是唯一的,因为搜索主要包含且不重复。因此它是密集的。而次索引不是唯一的,因为搜索关键字是次要包含且重复的,因此它通常是稀疏的,但在无用的情况下可能是密集的