对于大多数应用程序来说,哪种NoSQL数据库更好?
Cassandra (0.7x)和Membase两者都:
- 是键值数据库
- 速度快
- 可横向扩展
- 可以与Hadoop结合进行Mapreduce处理
- 支持增量和减量
Cassandra具有可选择的每个查询耐久性/一致性保证。
Cassandra具有BigTable列支持。
Membase具有异步(立即返回)写入功能。
除了一致性保证之外,为什么要选择其中之一?
Membase最近与CouchDB合并,并将其磁盘/持久层从sqllite更新为CouchDB,使Membase能够执行map/reduce和查询/索引。
还有一件事情还没有被提到,那就是Membase集群的设置非常容易,而Cassandra需要更多的系统管理员工作。
Cassandra目前也更广泛地被采用,尽管像Zynga及其社交游戏这样的关键用例适用于Membase。
这是一个非常简单的问题。为什么你不同时比较riak、Couchdb、Hadoop和其他数据库呢?
对于大多数应用程序来说,没有一种NoSQL数据库是最好的选择。Tokyo Tyrant非常适合某些任务。SQLITE是一种优秀的数据库,如果你知道该怎么做,它可以进行扩展。
NoSQL的整个意义在于解构单片式关系型数据库,并提供专注于数据库访问方面的精简工具,这些方面是你的应用程序瓶颈所在。每个应用程序都是不同的,因此并不存在最佳选择。
然而,有一种最佳策略。那就是确定你的应用程序的原始性能需求,找到瓶颈所在,并选择支持这些瓶颈并帮助你管理它们的数据库工具(也许是NoSQL,也许是关系型数据库)。
博客圈充满了那些从同样简单的问题开始,最终做出错误选择的人的故事。如果你想得到正确的答案,你需要从问正确的问题开始,有时候你需要清醒地认识到,从技术角度来看,你的应用程序很难管理。其他人已经发现,扩展问题可以更好地由业务人员解决,但前提是技术人员必须能够解释系统、其瓶颈和自然限制以及在某些方面更容易扩展的机会,只要业务朝不同的方向发展。
ConsistencyLevel.ZERO
。 - yfeldblum