小编典典

文档存储的最佳用途是什么?

sql

我已经听到很多有关面向文档的数据存储(例如CouchDB)的信息。我了解BigTable的用法,例如Cassandra之类的商店。阅读了这个问题之后,我想知道使用文档存储的条件是什么?


阅读 211

收藏
2021-04-15

共1个答案

小编典典

列族存储(例如Bigtable和Cassandra)具有非常有限的查询功能。该应用程序负责维护索引,以便查询更复杂的数据模型。

文档数据库使您不仅可以查询关键字,还可以查询内容。它还将为您管理索引,从而降低应用程序的复杂性。

领域驱动的设计传播了聚合和价值对象的使用。正如Ayende指出的那样,(复杂)聚合是非常自然的候选对象,可以存储为单个文档,而不是对多个表或列族进行规范化。这将减少持久层的复杂性。由于所有数据都包含在单个文档中,因此相关数据散布在多个节点上的可能性也较小。

如果您的应用程序需要存储多态对象,那么文档数据库也是一个不错的选择。当然,它也可以存储在Cassandra中,但是您将没有那么多的查询功能。至少不是开箱即用的。

可以将文档数据库视为豪华跑车。它不需要专业的驾驶员(阅读:复杂的应用程序)就可以将您从A提升到B,它具有诸如空调和舒适的座椅等功能,并且可以在可接受的时间内完成可扩展性测试。但是,如果您想在高延展性赛道上创造圈速记录,
则将 需要专业的驾驶员和高度优化的汽车(例如Cassandra),这些汽车缺少空调等功能。

2021-04-15