mongodb究竟有没有必要垂直分表(垂直分集合)

   最近跟同事在讨论mongodb有没有垂直分表(垂直分集合)的必要,同事的观点:Mongodb垂直分表对性能提升不大,我的观点是垂直分表对性能提升比较大。话不多说,实践出真理。

  首先分别建立两个集合 testData,添加5个字段 testDataPlus。添加20个字段

testData集合结构如下:

testDataPlus集合的结构如下:

分别插入100w条数据。

针对一个字段进行查询:

结果出乎我意料,时间花费居然差不多,考虑到name字段排序在两个集合中位置一样,可能因为查询算法的原因导致性能差不多。于是替换了另外一个字段进行查询,结果如下:

扫描二维码关注公众号,回复: 9478192 查看本文章

出现了预期的效果,性能影响还是挺大的。

结论:字段多会影响查询速度,垂直分表有助于提升查询速度。

这个时候我又陷入另外一个思考,是否字段排序会影响查询性能?

事实告诉我,字段排序实际又不会影响性能

结论:垂直分表(集合)有助于提升性能

然鹅,垂直分表的必要性还是值得讨论和商榷的,垂直分表会破坏文档的完整性,对全量信息查询会增加复杂度,对新增数据也会产生额外的性能开销。大多数情况个人并不推荐垂直分表。

发布了23 篇原创文章 · 获赞 19 · 访问量 1411

猜你喜欢

转载自blog.csdn.net/u012335601/article/details/99983505