数据结构索引(如关系数据库中的索引)

时间:2017-09-07 07:25:38

标签: dictionary data-structures hashmap relational-database

考虑如下数据结构:

structure = {
  1: {"a": "xy", "b": 123},
  2: {"a": "rt", "b": 222},
  3: {"a": "fd", "b": 111},
}

假设我们想要通过给定值a搜索此结构中的行。

在关系数据库中,我们只需将行a编入索引,这样可以使操作更快。

如何在编程语言和/或编程库中支持“索引行”(不支持成熟的关系数据库,我的意思是主要是不支持SQL)?哪些语言和/或图书馆支持此功能?

我知道我可以创建一个额外的“地图”数据结构,其中引用了上述数据结构中的对象,但我的问题是如何不手动完成(不为每个键创建一个新的地图)。如何自动执行此任务? (有一件事是创建一个可以容纳所有必要的哈希和地图的对象,但有更简单的方法吗?)

(示例数据结构很小,不需要哈希搜索,但它提供了一般的想法。)

1 个答案:

答案 0 :(得分:0)

使用键值为a的B树。它将根据a的值对B树中的数据进行排序。数据库管理系统以相同的方式实现主索引。数据按B树中的主索引(或主键)的顺序物理存储。此外,您可以将B树存储在磁盘上的内存映射文件中。这就是DBMS如何创建主索引。