Database design 记忆中集合与有序集合的区别?

Database design 记忆中集合与有序集合的区别?,database-design,erlang,schema,mnesia,Database Design,Erlang,Schema,Mnesia,set类型的表与ordered_set类型的表有什么区别?我感兴趣的是读/写性能的差异、排序的依据、分布式节点之间的影响等等。就排序的来源而言: add_element(E, [H|Es]) when E > H -> [H|add_element(E, Es)]; add_element(E, [H|_]=Set) when E < H -> [E|Set]; add_element(_E, [_H|_]=Set) -> Set; %E == H add_

set类型的表与ordered_set类型的表有什么区别?我感兴趣的是读/写性能的差异、排序的依据、分布式节点之间的影响等等。

就排序的来源而言:

add_element(E, [H|Es]) when E > H -> [H|add_element(E, Es)];
add_element(E, [H|_]=Set) when E < H -> [E|Set];
add_element(_E, [_H|_]=Set) -> Set;     %E == H
add_element(E, []) ->[E].
add|u元素(E[H|Es]),当E>H->[H|add|u元素(E,Es)];
当E[E | Set]时,添加_元素(E[H | |]=Set);
添加元素(_E,[_H | |]=Set)->Set;%E==H
添加元素(E,[])->[E]。
因此,排序看起来像元素上的直接比较

除了顺序外,它与集合完全相同。所以我冒昧地猜测,对于“值”较低的元素,平均而言,查找速度会比集合快。但除此之外,我不确定

由于Erlang是进程无关的,并且不允许修改变量,因此跨分布式节点的效果应该与本地节点相同

警告:


我没有对这两种类型进行任何基准测试,因此这是我关于性能的推测。

排序基于主键,这意味着排序集表在使用复杂主键进行匹配/选择迭代时要快得多。例如,如果您的记录看起来像
{Key,Val1},Val2}
,您可以匹配或选择
Key
,以非常快速地获得
Val1
Val2
。除此之外,我不知道读/写速度有显著差异


分割有序的集合表也是可能的,尽管这意味着迭代将是部分有序的,而不是完全有序的。对单个片段的迭代是有序的,但是从片段到片段的顺序是未定义的。

我假设您想要真实世界的体验,因为模块上的文档很好地解释了这些差异?是的,但是您可以链接到您正在谈论的文档吗?我一直在读的文档没有深入到太多的地方。好吧,很明显我没有仔细阅读这个问题。这与mnesia表有关,而不是数据类型本身。请随意修改我。