对于基于Erlang,Python的新应用程序,我们正在考虑尝试非RDBMS数据库(仅仅是为了它)。我研究过的一些数据库是Mongodb,CouchDB,Cassandra,Redis,Riak,Scalaris。以下是一个简单要求列表。
我只是在寻找非RDBMS数据库的起点。有什么建议吗?
答案 0 :(得分:6)
我们使用Mnesia构建企业应用程序。 Mnesia处于表格碎片化的模式时表现最佳,因为它没有表格大小限制。 Mnesia在过去的一年中表现良好并且仍在继续。我们平均每个表有大约1500万条记录,在给定的数据库模式中大约有24个表。
我推荐使用mnesia数据库,尤其是在 Erlang.org website 中Erlang 14B03中提供的数据库。我们已经将CouchDB和Membase Server( http://www.couchbase.com )用于系统的某些部分,但mnesia是主要的数据存储(主存储)。备份已经自动化,并且系统可以很好地适应不断增加的数据大小,但是在许多检查点下运行的表。它的分发,自动复制和复杂数据模型使我们能够非常快速地构建应用程序,而无需担心系统的复制,可伸缩性和故障转移/接管。
Mnesia Scales很好,它的架构可以在数据库运行时进行配置和更改。在系统运行时,可以在e.t.c中移动,复制和更改表。通常,它具有基于Erlang / OTP构建的强大系统的所有功能。当您使用google mnesia DBMS时,您将收到大量可以告诉您更多信息的书籍和论文。
最重要的是,我们的应用程序是基于Web的,由Yaws Web服务器(yaws.hyber.org)提供支持,我们对Mnesia的性能印象深刻。它的记录查找速度非常好,系统感觉很轻,但却提供了大量数据。请试试mnesia,你不会后悔。
编辑:要在您的应用程序中快速使用它,请查看给出的答案 here
答案 1 :(得分:4)
Riak是用Erlang编写的=> Erlang本地说话
Neo4j非常适合“连接”数据。它有Python绑定和一些Erlang适配器How to Use Neo4j From Erlang。值得注意的是,Neo4j并不像扩展那么容易,至少是免费的。但是......它完全是事务性的(甚至是JTA),它将事物保存到磁盘,它被融入Spring Data。
我相信给出了您的意见,Riak将是您的最佳选择: