【发布时间】:2013-08-11 00:27:56
【问题描述】:
对于简单的搜索查询(例如查询单个 WHERE 子句),日志结构合并树的最坏情况时间复杂度是多少?
是 O(log N) 吗? O(N*Log N)?还有什么?
对于多重查询,例如在键值数据库中搜索多个 WHERE 子句怎么样?
The wikipedia page on LSM trees is currently lacking this info。
【问题讨论】:
-
我认为很难估计像 LSM 树这样的复杂数据结构的搜索复杂度,因为它有不同的组件,复杂度取决于您如何管理这些组件中的不同操作。例如,由于 LSM 具有多个层,并且每个层的大小各不相同。现在取决于您是喜欢检查每一层中是否存在密钥,还是使用其他数据结构(如布隆过滤器)进行成员资格测试,可能会使整体复杂性有所不同。
-
LevelDB(基于 LSM 的轻量级键值存储)具有 O(lg N) 搜索性能和非常大的分支因子。但是,我相信他们通过不同的优化实现了它。
标签: big-o key-value-store lsm-tree