9.2.4 查询模型

2025-06-16 12:45:52 更新

NoSQL数据库设计偏重性能和可扩展性,设计的键值存储仅仅提供通过主键或一些id字段查找的功能,往往忽略丰富的动态查询功能。部分数据存储(如文档数据库CouchDB和MongoDB)允许某些复杂查询。

许多NoSQL数据库基于DHT (Distributed Hash Table分散哈希表)模型。数据库根据提供的对象主键进行相等匹配。

NoSQL常见查询模型


查询模型

模型说明

1

结合SQL数据库

将NoSQL数据库拷贝到关系数据库或者文本数据库来提供查询能力。可以仅将要查找的属性存到数据库中。

2

分散/集合本地搜索

提供本地数据库内的索引和查询处理机制。

让查询处理器将查询广播到DHT中的所有节点,在每个节点上将会并行地执行查询,并将结果返回查询处理器,然后将结果聚集成单一响应。

3

分布式B+树

B+树是一种用在关系型数据库管理系统中常见的索引结构。B+树分布式版本可以用在DHT环境中。其基本思路是定位B+树的根节点哈希要搜索的属性。

4

前缀哈希表/分布式Tree

前缀哈希表(Prefix Hash Table, PHT分布式Trie)是一个树形数据结构。从根节点到叶子的每一条路径上均包含了键值前缀,并且每个Trie中的节点都包含了它是谁的前缀的所有数据。