gpt4 book ai didi

erlang - Mnesia 的 table 位于哪里?

转载 作者:行者123 更新时间:2023-12-02 06:32:46 24 4
gpt4 key购买 nike

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

据我了解,Mnesia 中的表可以位于(参见 Memory consumption in Mnesia ):

  • ram_copies - 表存储在 ets 中,因此没有 ACID 那样的持久性。
  • disc_copies - 表位于 etsdets,因此表不能大于可用内存?如果表有碎片,数据库不能大于可用内存?
  • disc_only_copies - 表位于 dets,因此内存中没有缓存并且性能较差。并且表的大小仅限于dets的大小,否则表必须分片。

因此,如果我想要从 RAM 读取的性能和写入光盘的持久性,那么与 MySQL 或 PostgreSQL 等传统 RDBMS 相比,表的大小非常有限。

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

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

Mnesia 中的 disc_copies 和其他类型的表格是否如我所理解的那样受到限制?数据库不能部分存储在内存中,完整副本存储在光盘上吗?

最佳答案

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

What is the storage capacity of a Mnesia database?

已经有一个很好的答案了。

显然(但我想你已经看过了)官方文档位于:

http://www.erlang.org/doc/man/mnesia.html

另外,阅读 Mnesia FAQ :

11.5 How much data can be stored in Mnesia?

Dets uses 32 bit integers for file offsets, so the largest possible mnesia table (for now) is 4Gb.

In practice your machine will slow to a crawl way before you reach this limit.

最后,Mnesia 表可以碎片化。这是讨论的herethere .

这是我的 2p。

关于erlang - Mnesia 的 table 位于哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2596338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com