散列和索引之间有什么区别?

时间:2012-11-20 09:59:47

标签: database hash indexing

我研究过DBMS中的散列(可扩展,线性)和DBMS中的索引(稀疏,密集,基于二级密钥的索引等),但我无法理解散列和索引之间的区别。这两种技术是一起使用还是只是使用?我很困惑,因为这两种技术的目的似乎是让我们能够快速检索数据,所以我认为应该足够了。

任何人都可以澄清差异吗?

5 个答案:

答案 0 :(得分:20)

什么是索引?

索引是一种对多个字段中的多个记录进行排序的方法。在表中的字段上创建索引会创建另一个数据结构,该结构保存字段值,并指向与其相关的记录。然后对该索引结构进行排序,允许对其执行二进制搜索。

什么是哈希?

散列是将字符串转换为通常较短的固定长度值或表示原始字符串的键。哈希用于索引和检索数据库中的项目,因为使用较短的哈希键查找项目比使用原始值查找项目更快。

我认为这可能会让你感到疑惑。

答案 1 :(得分:13)

哈希是一种索引:它可以用于根据键定位记录 - 但它不保留任何记录顺序。基于散列,不能迭代到后续或前一个元素。但是,这是什么索引(在数据库的上下文中)。

答案 2 :(得分:2)

  • 哈希不保证不同的值将散列到不同的地址。
  • Hashing中存在碰撞。
  • 哈希导致溢出。
  • 无需访问索引结构来定位数据&然后从DB File中读取数据。
  • 有命令来定义索引而不是哈希。

答案 3 :(得分:0)

散列是一种先进的搜索技术。即大数据被制作成小数据项并存储在表中。但索引和二进制搜索以线性方式进行搜索。 并且索引用于使索引(键)成为多个字段的组合

答案 4 :(得分:0)

索引编制与散列之间的区别

按定义
建立索引是一种数据结构技术,可根据发生索引的某些属性从数据库文件中有效地检索记录。另一方面,散列是一种无需使用索引结构即可计算数据记录在磁盘上的直接位置的有效技术。因此,这是索引编制和哈希处理之间的主要区别。

按功能
索引使用的数据引用使用与键对应的值保存磁盘块的地址,而哈希使用称为哈希函数的数学函数来计算数据记录在磁盘上的直接位置。因此,这也是索引编制和哈希处理之间的主要区别。

索引散列之间的另一个区别是散列在大型数据库中比索引更有效。

相关问题