我可以看到像Klarna和Whatsapp这样的两家大公司正在使用Mnesia作为他们的内存数据库(不确定他们如何将数据保存在Mnesia的2GB限制中)。我的问题是:为什么像这样的公司,可能更多我不知道,使用Mnesia而不是Riak或couchDB,两者都是Erlang,两个数据库都支持更快的内存数据库,更好的无痛持久性,以及更多功能。我在这里想念一下吗?
答案 0 :(得分:36)
您遗漏了许多要点:
首先,mnesia没有2千兆字节的限制。它仅限于32位架构,但实际工作中几乎不存在任何架构。在64位上,您不限于2千兆字节。我见过几百GB的数据库。唯一的问题是那些人的初始启动时间。
Mnesia旨在处理:
由于数据已经在Erlang系统中,因此您可以避免单独的过程。您有QLC用于类似数据目录的查询。并且您可以存储任何Erlang术语。
如果以上是你需要的话,Mnesia的表现很好。它的限制是:我正常的转到技巧是从Erlang系统中的Mnesia开始,然后随着数据大小的增长切换到另一个系统。如果数据大小增长缓慢,那么您可以将所有内容保存在Mnesia中并快速启动并运行。
答案 1 :(得分:10)
非常认真。对于mnesia磁盘表大小没有实际限制。
答案 2 :(得分:3)
据我所知,既不是Riak也不是(请参阅注释中的BitCask注释)CouchDB支持内存数据库。我在Riak上错了,但我在CouchDB上工作,所以我非常肯定。
工程师正在选择Riak或CouchDB上的mnesia,因为它解决了另一个问题。
他们是否是大公司都不是这个因素。