Erlang 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

我试着将Mnesia与更传统的数据库进行比较

据我所知,Mnesia中的表格可定位为(见):

  • ram\u拷贝
    -表格存储在
    ets
    中,因此不会像在ACID中那样耐久
  • disc\u copies
    -表格位于
    ets
    dets
    ,因此表格不能大于可用内存?而如果表是碎片化的,数据库能否大于可用内存
  • disc\u only\u copies
    -表位于
    dets
    ,因此内存中没有缓存,性能更差。表的大小限制为
    dets
    的大小,或者表必须分段
因此,如果我想要从RAM读取数据的性能和写入磁盘的持久性,那么与传统的RDBMS(如MySQL或PostgreSQL)相比,表的大小非常有限

我知道Mnesia并不打算取代传统的RDBMS:s,但它可以作为一个大型RDBMS使用,还是我必须寻找另一个数据库

我将使用的服务器是一个内存有限的VPS,大约512MB,但我想要良好的数据库性能


在我的理解中,
disc\u副本
和Mnesia中其他类型的表格是否如此有限?数据库不能部分存储在内存中,而完整副本不能存储在磁盘上吗?

不同类型表的Mnesia数据库存储容量已在前面的SO问题中讨论过:

这里已经有了一个很好的答案

显然(但我想你已经看过了)官方文件可在以下网址获得:

此外,请阅读:

11.5在Mnesia中可以存储多少数据

Dets对文件使用32位整数 偏移量,所以最大可能 mnesia表(目前)为4Gb

实际上,你的机器会慢到 在你到达这里之前先爬过一段路 限制

最后,Mnesia表可以被分割。对此进行了讨论和讨论


这是我的2p。

谢谢!据我所知,在我的情况下,这些表将被限制在512MB以下,除非我只有
disc_
,这会带来糟糕的性能。所以最好再找一个数据库。因为我只有512MB内存,基本上你需要的是缓存,不,据我所知,Mnesia并没有为你做这件事。很明显,实现它是可能的,但它并不在那里等着您:)