考虑如下数据结构:
structure = {
1: {"a": "xy", "b": 123},
2: {"a": "rt", "b": 222},
3: {"a": "fd", "b": 111},
}
假设我们想要通过给定值a
搜索此结构中的行。
在关系数据库中,我们只需将行a
编入索引,这样可以使操作更快。
如何在编程语言和/或编程库中支持“索引行”(不支持成熟的关系数据库,我的意思是主要是不支持SQL)?哪些语言和/或图书馆支持此功能?
我知道我可以创建一个额外的“地图”数据结构,其中引用了上述数据结构中的对象,但我的问题是如何不手动完成(不为每个键创建一个新的地图)。如何自动执行此任务? (有一件事是创建一个可以容纳所有必要的哈希和地图的对象,但有更简单的方法吗?)
(示例数据结构很小,不需要哈希搜索,但它提供了一般的想法。)
答案 0 :(得分:0)
使用键值为a的B树。它将根据a的值对B树中的数据进行排序。数据库管理系统以相同的方式实现主索引。数据按B树中的主索引(或主键)的顺序物理存储。此外,您可以将B树存储在磁盘上的内存映射文件中。这就是DBMS如何创建主索引。