2012-06-07 77 views
7

我读过几篇文章,比如this one,它们将像MongoDb,CouchDb和CouchBase这样的文档商店与像Cassandra这样的专栏商店进行比较。专栏商店vs文档商店

一个比较是文档存储以更高的粒度级别工作的事实,与列家族商店相比,它可以让您在文档的各个部分上工作。我发现这只是不真实的,因为Redis通过hset operation支持这个,mongodb也支持。

当时的观点是,虽然这两种解决方案都允许更新/读取文档的某些部分,但是与文档存储相比,列族存储在执行此操作时效率更高?

这是否也意味着我应该采取文件存储路线插入和读取重型应用程序,但列家族的路线更新和读重型应用程序?

有什么其他的差异,可以帮助我选择一种解决方案而不是其他的?

谢谢!

回答

8

我建议主要区别在于查询模型。它们都可以存储相似的数据结构(例如,可以将JSON文档放入CF存储区),但文档存储通常会为您提供按值查询功能,而CF存储通常不会。然而,这些界限正在变得模糊,似乎随着每个数据库项目的成熟,这样的概括变得越来越不适用。例如,Cassandra(一家广受欢迎的CF商店)确实提供了一些具有二级索引的按价值查询功能。然而,大多数CF商店要求您按照您打算阅读的方式编写数据,这意味着您必须根据您的查询考虑数据模型。

这似乎对我来说,有各种数据库技术之间的其他同样重要的区别,如一致性模型,数据中心复制功能,缩放模式,易于管理,缓存能力等

+1

感谢的好方法区别..谢谢!在选择NoSql产品时,我面临的挑战之一是,它们似乎都以不同的方式提供相同的东西,而黑色或白色的比较难以做到。 – Kailash