2011-04-27 58 views
0

我应该选择哪一个非关系型数据库(我知道这个问题是一个主观问题,需要考虑系统的需求)。非关系型数据库,哪一个是正确的选择

我看了这篇文章cassandra-vs-mongodb-vs-couchdb-vs-redis,但还是不能决定。

如果这里的有经验的人可以在做出这个决定时考虑关键要点,这将是非常好的。

+0

我以为我会指出那篇关于MongoDB的文章中的几点已经过时了。副本集比主/从复制更受欢迎。副本集提供自动故障转移功能,以防节点由于某种原因失败。 1.8提供日志功能,无需在崩溃后执行完整的修复。 MongoDB也提供map/reduce(文章似乎暗示它不)。 – 2011-04-27 18:57:20

+1

就像一个侧面说明。我知道“非关系型数据库”今天是一种常见的口语化,但它是一个完全用词不当的现象。数据是完全关系的。如果它确实是非关系的,那么它不能包含键值对。我相信这个更正确的术语是NoSchema数据库。为了说明问题:Google App Engine,ext.db通常被称为“非关系型”数据库,它允许引用属性......这是关系型的;)它只是无模式的。 – Michael 2013-08-04 00:29:59

回答

1

每种类型的数据库都非常擅长处理某些事情,并且不能与其他事物相抗衡。不可能说所有领域的哪一个是最好的,否则就没有其他理由存在。

我觉得有时候会选择对个人感觉更接近程序员的思维方式。

如果您指定哪些是您的要求和您的方案,可以做出更好的答案。

例如,MongoDB和Redis是互补的,他们解决不同的问题,并且可以(并且)一起使用以最大化性能。没有人能在可扩展性上胜出cassandra,但在架构中并不那么灵活。 CouchDB有一个很好的内部“应用程序逻辑”,但是你必须改变主意并学会用json说话。