而是在少数文档中使用多个嵌套列表,或者在/几个嵌套列表中使用多个嵌套列表,而是使用由边连接的许多文档

时间:2015-01-05 15:29:38

标签: data-modeling arangodb nosql

哪个读取性能更好?我目前正在使用arangoDB,关于多模型方法,我想知道从具有多个嵌套列表的少数文档读取数据是否更快,或者从没有嵌套列表的许多(较小)文档中读取是否连接通过多个边缘。

多重嵌套文档的示例(实际上,它与鸡尾酒数据库无关):

{
"_key" : "cocktail/1",
"name" : "newcocktail",
"drinks" : [{ "orange juice" : [{"ingredient":"orange", "quantity":2},{"ingredient":"water", "amount":4},{"ingredient":"sugar", "quantity":6}], ...]},
}

示例没有嵌套列表

{
"_key" : "cocktail/1",
"name" : "newcocktail"
}

{
"_key" : "edge/1",
"from" : "cocktail/1",
"to" : "drink/1"
}

{
"_key" : "drink/1",
"name" : "orange juice"
"quantity" : 2
}

{
"_key" : "edge/2",
"from" : "drink/1",
"to" : "ingredient/1"
}

{
"_key" : "ingredient/1",
"name" : "orange"
"quantity" : 2
"unit" : ....
}

1 个答案:

答案 0 :(得分:3)

如果您只对原始读取性能感兴趣,那么读取一个大文档会更快。

如果您的文档只是值,那么关于多模型方法的正确策略确实会嵌入。如果您的文档本身就是实体(可能经常更改;从不同的地方引用),则应将它们存储为单独的文档。