【问题标题】:NoSQL database which combines reading speed and data integrity结合读取速度和数据完整性的 NoSQL 数据库
【发布时间】:2012-12-25 10:41:25
【问题描述】:

是否有任何 NoSQL 数据库或“即用型解决方案”结合应用程序需要 复制数据快速读取以及数据完整性与 的数据关系自动分配更改到重复数据?

示例:

实体:

Topic
  - id
  - title
  - first_comment_id

Comment
  - id
  - topic_id
  - text

文档/物化视图:

TopicList
  - topic_id
  - topic_title
  - first_comment_text

当我更改主题标题时,更改将分发到数据库层包含此属性的每个文档。所以完整性将由数据库管理。

我真的很喜欢 MongoDB 的无模式行为,所以 Oracle 或其他关系数据库不是解决方案。

【问题讨论】:

  • 问题,Sql RDBMS 中的物化视图不能满足您的需求吗?当你所描述的存在于 Oracle、Sql Server、MySql 等中时,为什么它需要是 NoSql...
  • 我真的很喜欢具有嵌套文档可能性的无模式 MongoDB。我会在我的问题中更好地说明它;)

标签: database nosql solution schemaless


【解决方案1】:

我在 Mongo 和加入实体/文档方面有一些经验,所以我会为此提供答案。您可以在 Mongo 中创建输出到集合的 map/reduce 查询。这种行为非常好,避免了在“准备好”之前(在 map/reduce 完成运行等之前)从新创建的集合中读取的问题

为了保持该集合的更新,我使用了一个外部进程按计划发出 map/reduce 函数。它使您的查询更加随意。

我想这也可以管理一致性,因为每个实体都是权威的,当临时集合再次生成时,您会看到更改。当然需要注意的是它不是实时的。

【讨论】:

  • 这是个好主意,但需要实时处理。另外,它每次都会生成所有集合吗?管理大量实体时效率非常低。
  • 每次都会生成整个集合。这就是它保持实体完整性的方式。对于大型“连接”或两个拥有大量文档的实体......它会很慢。绝对不是实时的。但是,如果您正在查看任何 NoSQL 解决方案,则假定数据将不一致。您正在努力实现一致性。
  • 我刚刚从一个赞助的 Twitter 广告 (geez) 中记起了这一点:foundationdb.com 声称使用 NoSQL 和 ACID。还没有检查过,但也许值得一看?
猜你喜欢
  • 2012-05-08
  • 1970-01-01
  • 1970-01-01
  • 2012-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多