散列和索引都用于在某些预定义公式上对数据进行分区。但我无法理解两者之间的关键区别。
与散列一样,我们根据一些键值对来划分数据,类似地,在索引中,我们也在一些预定义的值上划分数据。
谁能帮我弄清楚散列和索引之间的区别,以及如何决定是使用散列还是索引。
散列和索引都用于在某些预定义公式上对数据进行分区。但我无法理解两者之间的关键区别。
与散列一样,我们根据一些键值对来划分数据,类似地,在索引中,我们也在一些预定义的值上划分数据。
谁能帮我弄清楚散列和索引之间的区别,以及如何决定是使用散列还是索引。
散列是索引的一种特殊情况:
索引是旨在加速数据查找的分区过程的通用名称。索引可以根据字段的值或字段的组合对数据集进行分区。它还可以根据一个函数的值(称为散列函数)对数据集进行分区,该函数是根据字段或字段组合中的数据计算得出的。在这种特定情况下,索引称为数据散列。
我在网上做了一些研究:
什么是索引?
索引是一种对多个字段上的许多记录进行排序的方法。在表中的字段上创建索引会创建另一个数据结构,该结构包含字段值和指向与其相关的记录的指针。然后对该索引结构进行排序,允许对其执行二进制搜索。
什么是哈希?
散列是将字符串转换为通常较短的固定长度值或表示原始字符串的键。散列用于索引和检索数据库中的项目,因为使用较短的散列键查找项目比使用原始值查找项目更快。