所以我一直在使用 ETS - 效果很好。但是,我将它用作路由数据的缓存 - 在模块加载时加载,并在进行更改时保存(读取的次数远远多于写入的次数)。
我认为 DETS 会让事情变得更加干净 - 我不必担心管理表的持久性。这是 DETS 的一个很好的用途吗? (大小不是问题,主要关心的是读取性能的大幅提高 - 所有数据都可以轻松放入内存中)。
最佳答案
在大多数情况下,DETS 比 ETS 慢得多,但我猜如果你的数据量很小,那么大多数情况下它会被磁盘缓存缓存,并且在你第二次读取它时检索会更快,所以最好重要的是根据您的使用类型进行尝试
但是您是否考虑过直接使用 Mnesia 而不是 ETS?使用 Mnesia 表类型 Disc_copies,您将获得 ETS 的速度和持久性
关于erlang - 大多数情况下 DETS 的只读使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4790090/