MongoDB性能建议

时间:2018-08-23 11:59:36

标签: json database mongodb performance nosql

我有一个正在研究的项目,我想知道从性能的角度看待该架构的最佳方法是什么。

这就是我的数据的样子

{ "description": "this is a payment description", "payment": { "amount": 2000, "type": "type1", "gateway": "gateway1" } }

我想做的是能够计算由JSON中提供的任何键过滤的金额之和。

这些是我想到的模式。

SCHEMA 1

{ "description": "this is a payment description", "payment": { "amount": 2000, "type": "type1", "gateway": "gateway1" } }

SCHEMA 2

{ "description": "this is a payment description", "payment_amount": 2000, "payment_type": "type1", "payment_gateway": "gateway1" }

假设数据进入一百万条记录,当我展平JSON并将其另存为顶级属性时,性能(就检索时间而言)是否会变好,或者对象的嵌套程度如何都没有关系?

谢谢。

2 个答案:

答案 0 :(得分:0)

从性能的角度来看,上面显示的两种模式设计都很好。

文档中过多的嵌套级别会在查询和更新文档时造成不必要的麻烦。因此,仅在需要嵌套的地方使用嵌套,否则实际上是有道理的,否则平面文档结构就可以了。

就性能而言,这两种模式设计之间的差异几乎不会引起注意,模式1会比模式2占用更多的空间。

答案 1 :(得分:0)

一种模式,因为Mongo是用于处理此类文档结构的。

如果您热衷于简单性,请使用模式2,因为它可以简化过滤,以防您要将每种记录转换为使用任何一种语言的某个类。(感谢史蒂夫)