【问题标题】:CouchDB document maximum sizeCouchDB 文档最大大小
【发布时间】:2011-06-28 09:26:59
【问题描述】:

在一些建议之后,因为我是 CouchDB 的新手(并且到目前为止很喜欢它)。只是想知道单个文档的大小是否有任何限制。下面是一个文档示例。

{
    "_id": "client_info",
    "name": "Client Name",
    "role": "admin",
    ....
},
{
    "_id": "1199145600",
    "alert_1_value": 0.150
    "alert_2_value": 1.030
    "alert_3_value": 12.500
    ...
    ...
},
{
    "_id": "1199145900",
    "alert_1_value": 0.150
    "alert_2_value": 1.030
    "alert_3_value": 12.500
    ...
    ...
},
{
    "_id": "1199146200",
    "alert_1_value": 0.150
    "alert_2_value": 1.030
    "alert_3_value": 12.500
    ...
    ...
},
etc...literally millions more of these every 5 minutes...

上面的例子表明,我将在对象“values”下存储几个 Data 对象(例如,Data_1、Data_2 等)的数据(时间戳和值)。

这里的诀窍是每个“值”对象都需要存储大量的时间戳/值对象(大约 250 万个)。我通过脚本添加了这些,只是为了测试 Document 的限制,但是 Futon 由于无法处理而崩溃。

我感觉我做错了事...

更新:修改后的代码,现在将每个数据集存储在单独的文档中。

【问题讨论】:

    标签: database couchdb


    【解决方案1】:

    当您设计 CouchDB 数据库时,您必须从文档的角度来考虑。这是http://guide.couchdb.org的摘录,我觉得非常好:

    经验法则:将您将在应用程序中单独处理的所有内容分解成文档。物品是单一的,而 cmets 是单一的,但您不需要将它们分成更小的部分。视图是一种以有意义的方式对文档进行分组的便捷方式。

    【讨论】:

    • 感谢@Gjorgji,我仍在努力了解新的思维方式!而不是将这些时间戳/值对象附加到上述文档中,每个对象应该是一个单独的文档(然后以视图显示)。我不禁觉得这是一种无组织的数据存储方式,一切都只是放在数据库的根目录中......
    • 视图应该是组织无组织数据的方式:)。请记住,您期望每个 Data_X 有 250 万个时间戳/值,它们中的每一个都应该是一个单独的文档。确保您阅读了 CouchDB 指南。您没有考虑过使用 RDBMS(例如 PostgreSQL)吗?我对 CouchDB 也比较陌生,我觉得当不同的“数据块”不太相似时更合适。在你的情况下,数据都是一样的。
    • 只使用过 MySQL,我不确定它是否能够足够快地检索到这么大的数据集的值。我已经用我修改过的技术更新了原始帖子。经过几次测试后,我们将看到它是如何处理的......
    猜你喜欢
    • 1970-01-01
    • 2018-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多