我尝试将 Mnesia 与更传统的数据库进行比较。
据我了解,Mnesia 中的表可以位于(请参阅Mnesia 中的内存消耗):
ram_copies
- 表存储在 中ets
,因此没有 ACID 中的持久性。disc_copies
- 表位于ets
anddets
,所以表不能大于可用内存?而如果表是碎片化的,数据库就不能大于可用内存吗?disc_only_copies
- 表位于dets
,因此内存中没有缓存,性能更差。并且表的大小被限制在表的大小dets
或者表必须是碎片化的。
因此,如果我想要从 RAM 读取的性能和写入磁盘的持久性,那么与 MySQL 或 PostgreSQL 等传统 RDBMS 相比,表的大小非常有限。
我知道 Mnesia 并不是要取代传统的 RDBMS:s,但它可以用作大型 RDBMS 还是我必须寻找另一个数据库?
我将使用的服务器是一个内存有限的 VPS,大约512MB,但我想要良好的数据库性能。
disc_copies
正如我所理解的那样,Mnesia 中的其他类型的表格是否如此有限?数据库不能部分在内存上,完整的副本在磁盘上吗?