我将mnesia ram_copies
表复制到所有可用节点。几乎所有使用此表的操作都以脏模式执行。在mnesia:foldl
上下文中使用ets
的后果是什么?
mnesia:activity(ets, fun() ->
mnesia:foldl(fun(V, Acc) ->
case V#my_table.field > 0 of
true -> Acc;
false -> Acc + 1
end
end, 0, my_table)
end).
答案 0 :(得分:1)
鉴于你有
ets
和async_dirty
之间的效果没有区别。您可以通过绕过async_dirty
进行的大量测试来看到一些小的速度改进,但我不希望它会有明显的增益。
作为一般惯例,我建议在任何地方使用一种交易类型(定义为宏),并且只有在您发现真正的速度改进时才会出现分歧。否则,您可能会遇到错误,例如在您的ets
交易中添加写入或违反上述其他假设之一,然后您就会沉没。