Erlang Mnesia的桌子在哪里?
我试着将Mnesia与更传统的数据库进行比较 据我所知,Mnesia中的表格可定位为(见):Erlang Mnesia的桌子在哪里?,erlang,mnesia,Erlang,Mnesia,我试着将Mnesia与更传统的数据库进行比较 据我所知,Mnesia中的表格可定位为(见): ram\u拷贝-表格存储在ets中,因此不会像在ACID中那样耐久 disc\u copies-表格位于ets和dets,因此表格不能大于可用内存?而如果表是碎片化的,数据库能否大于可用内存 disc\u only\u copies-表位于dets,因此内存中没有缓存,性能更差。表的大小限制为dets的大小,或者表必须分段 因此,如果我想要从RAM读取数据的性能和写入磁盘的持久性,那么与传统的RDB
-表格存储在ram\u拷贝
中,因此不会像在ACID中那样耐久ets
-表格位于disc\u copies
和ets
,因此表格不能大于可用内存?而如果表是碎片化的,数据库能否大于可用内存dets
-表位于disc\u only\u copies
,因此内存中没有缓存,性能更差。表的大小限制为dets
的大小,或者表必须分段dets
在我的理解中,
disc\u副本
和Mnesia中其他类型的表格是否如此有限?数据库不能部分存储在内存中,而完整副本不能存储在磁盘上吗?不同类型表的Mnesia数据库存储容量已在前面的SO问题中讨论过:
这里已经有了一个很好的答案
显然(但我想你已经看过了)官方文件可在以下网址获得:
此外,请阅读:
11.5在Mnesia中可以存储多少数据
Dets对文件使用32位整数
偏移量,所以最大可能
mnesia表(目前)为4Gb
实际上,你的机器会慢到
在你到达这里之前先爬过一段路
限制
最后,Mnesia表可以被分割。对此进行了讨论和讨论
这是我的2p。谢谢!据我所知,在我的情况下,这些表将被限制在512MB以下,除非我只有
disc_
,这会带来糟糕的性能。所以最好再找一个数据库。因为我只有512MB内存,基本上你需要的是缓存,不,据我所知,Mnesia并没有为你做这件事。很明显,实现它是可能的,但它并不在那里等着您:)