NoSQL数据库对比:MongoDB vs.Cassandra

数据库 其他数据库 MongoDB
这不算是一篇PK文章,当然对于任意一个产品,没有绝对的主场,所以文章内容更多是从各个方面的对比。本文来自boxedice的技术博客,在写此文时他们已经在Server Density中使用MongoDB两年多时间了。

这不算是一篇PK文章,当然对于任意一个产品,没有绝对的主场,所以文章内容更多是从各个方面的对比。本文来自boxedice的技术博客,在写此文时他们已经在Server Density中使用MongoDB两年多时间了。全文分为两部分,技术方面和市场运作方面。

技术方面

1.数据结构

MongoDB使用文档型存储,其数据结构为与JSON类似的BSON结构,而Cassandra支持的是key-value式存储,而每个key-value还会保存一个时间戳,这个时间戳实际上起到了版本控制的作用。

2.索引结构

MongoDB的索引几乎与关系型数据库完全一样,其普通索引、联合索引、唯一索引的意义和实现上都可以参考对MySQL索引的理解。而 Cassandra由于其是一个key-value结构的存储,如果你要对value进行条件查找,那么就必须建立反向索引,重新建立一个value- key的键值对。

3.部署

MongoDB提供了Replica Sets的高可用部署方式,配置好RS的节点后,整个集群会自动选举出Primary机器供写入操作,并自动复制数据到其它节点。它还具有故障后自动选举 新的主机的机制。而Cassandra提供的策略更为灵活,它通过一种对网络结构可感知的机制,它让你可以配置数据是备份在本地网络中的其它节点还是备份 到远端的数据中心。

#p#

市场动作

1.商业支持

Cassandra和MongoDB都是开源产品,不同的是Cassandra是完全自由地在Apache孵化器中进行发展。而MongoDB是由商业公司10gen在背后支持,绝大部分的MongoDB贡献者都来自10gen。

2.技术支持

对 MongoDB来说,最好的技术支持肯定来源于10gen,因为MongoDB是他们开发的,所以他们应该最了解。在10gen的网站上,你可以看到相关的支持支持联系方式。而Cassandra也有一些第三方的机制提供技术支持服务,这些机构基本上都有一些Cassandra的核心开发者在其中,以保证其对Cassandra能有足够的了解。

3.发展状态

MongoDB在10gen的带领下一直稳步而快速地进行着 BUG修复和新功能增加,比如他们会举行新功能投票来让你参与MongoDB发展中来。另外值得一提的是10gen对社区的关注热情很高,对于使用用户的需求了解非常充分。相对来说Cassandra在这方面就相对混乱一些,与10gen的全职开发工程师不同,Cassandra更多的是自发的开源项目参与者,像Eric Evans这样的全职开发者非常之少。

4.技术文档

Cassandra的官方文档并不太好,相对好一些的是Datastax自己上面的一个版本。但还是缺乏一个完整详尽的介绍。而MongoDB的文档相对来说比较完整而成体系。在其官方网站上你就能看到结构明了的文档了,而且多语言版本也都在跟进翻译中。

5.社区活动

这方面MongoDB做得非常出色,几乎可以用技术营销经典案例来形容。在去年一年,MongoDB相关的会议就举行了40场。相信在国内的很多朋友还记得在北京举行的Mongo Beijing。而Cassandra的活动更多的是自发进行的。

[[38351]]

6.第三方客户端

这也是boxedice选择MongoDB的另一个原因,MongoDB拥有非常广泛的客户端支持,几乎所有流行语言都有其操作客户端。而且这些客户端几乎都是由10gen官方开发并维护的。而Cassandra仅有Java和Python的官方客户端,剩下的都是一些自发的第三方客户端。

【编辑推荐】

  1. CouchDB和SQLite联合推出NoSQL查询语言
  2. Java开源NoSQL数据库大全
  3. NoSQL就业形势分析:Cassandra和MongoDB最受欢迎
  4. Mongodb亿级数据量的性能测试

 

责任编辑:艾婧 来源: NoSQLFan
相关推荐

2010-03-16 14:05:19

Cassandra

2019-07-08 10:36:34

数据库WebNoSQL

2011-09-21 11:21:00

NoSQL

2012-08-24 09:01:02

IBMdW

2013-08-26 09:36:27

大数据NoSQLMongoDB

2011-06-14 09:09:13

NoSQLMongoDB

2011-08-02 16:27:50

SQLNoSQL

2024-02-02 10:51:53

2010-08-12 09:43:31

CassandraMongoDB

2011-03-04 09:32:31

NoSQL就业形势Cassandra

2019-03-27 14:54:05

NoSQL数据库Forreste

2013-12-03 11:00:48

2021-09-28 09:25:05

NoSQL数据库列式数据库

2011-10-09 09:38:03

OracleNoSQL

2010-05-31 17:18:39

Cassandra数据

2023-09-05 10:25:35

数据库性能

2010-09-07 09:07:33

MongoDBCouchDB

2016-10-19 09:36:04

Oracle12c R分片分布式

2011-07-15 09:11:39

MySQLMongoDB

2010-07-11 18:42:17

CassandraTwitter
点赞
收藏

51CTO技术栈公众号