我阅读了几篇帖子,例如this one,将MongoDb,CouchDb和CouchBase等文档商店与Cassandra等列系列商店进行比较。
一个比较是文档存储以更高的粒度级别工作,而不是列系列存储,它允许您处理文档的各个部分。我觉得这简直是不真实的,因为Redis通过hset operation支持这一点,mongodb也是如此。
那么论证是,尽管两种类型的解决方案都允许更新/读取文档的某些部分,但列族系列存储只是比文档存储更有效吗?
这是否也意味着我应该采用文档存储路由来插入和读取繁重的应用程序,但列系列路由是否可以更新并读取繁重的应用程序?
有哪些其他差异可以帮助我选择一种解决方案而不是另一种?
谢谢!
答案 0 :(得分:8)
我建议主要区别在于查询模型。它们都可以存储类似的数据结构(例如,您可以将JSON文档放入CF存储中),但文档存储通常会为您提供按值分析的功能,而CF存储通常不会。然而,线条变得模糊,似乎随着每个数据库项目的成熟,这种概括变得越来越不适用。例如,Cassandra(一种流行的CF商店)确实提供了一些二级索引的按值查询功能。但是,大多数CF商店都要求您按照打算阅读的方式编写数据,这意味着您必须根据查询考虑数据模型。
在我看来,各种数据库技术之间还存在其他同样重要的区别,例如一致性模型,数据中心复制功能,扩展模型,易管理性,缓存功能等。