跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请教各位大佬一个 mongoDb 表设计的问题,是否应该使用内嵌数组
未分類
24 11 月 2020

请教各位大佬一个 mongoDb 表设计的问题,是否应该使用内嵌数组

请教各位大佬一个 mongoDb 表设计的问题,是否应该使用内嵌数组

資深大佬 : BoarBoar 2

需求在一张表中每次写入相关联的数千条数据,这些关联数据使用同一个 id 来标识。 写入之后不会改动,只需要查询或删除。

请问这种情况,是应该使用类似 sql 表的形式,写入同一 id 的数千条数据 [id:abc,field1:xxx,…,filedn:xxx] [id:abc,field1:xxx,…,filedn:xxx] . . . [id:abc,field1:xxx,…,filedn:xxx]

还是使用 mongo 的内嵌数组在比较好呢 id:abc, data:[ {field1:xxx,…,filedn:xxx}, . . . {field1:xxx,…,filedn:xxx}, ]

主要是需要考虑查询效率,如果按第一种设计数据量可能是亿级别的,用 id 查询依然十分费劲 对 mongo 不太了解。1.不知道内嵌数组的性能可靠不 2.不知道用 id 建立索引后,用 id 查询是否依然会去扫内嵌的数千条数据,如果依然扫似乎不会比第一种效率高 跪求大神指点迷津

大佬有話說 (9)

  • 資深大佬 : syzh

    第二种方式比较好吧,第一种方式的话,不如用 mysql 分库分表的方案了。以及第二种方式用 id 查询,为什么会扫内嵌的数据..

  • 資深大佬 : xuanbg

    查询居多用内嵌

  • 資深大佬 : teawithlife

    肯定选第二种,这是 mongoDB 的优势,也是推荐用法,效率会有极大的提升

  • 資深大佬 : myCupOfTea

    @syzh 盲猜,也有其他查询条件

  • 資深大佬 : TJT

    取决于内嵌数组中的数据会不会有跨文档的查询需求, 如果有且需求不固定, 那还是第一种比较好, 另外单个文档最大 16MB.

    MongoDB 嵌套文档的性能很好, 只要你的设计合理.

  • 主 資深大佬 : BoarBoar

    @syzh
    @xuanbg
    @teawithlife
    @myCupOfTea
    谢谢各位,其实我心里也倾向第二种,只是 mongo 用得少想确认一下,多谢了

  • 主 資深大佬 : BoarBoar

    @TJT 好的,是固定的,我就是想试试 mongo 这个特性,但是毕竟是公司的怕出问题背锅

  • 資深大佬 : tangtj

    内嵌数组中的数据会不会变大很大。我们遇到了一个问题,一个字段是嵌套数组,数组内容是一直在增加的。时间长了之后,有些数组开始有十几万个元素,部分查询没有排除掉这个字段,即使没有使用上这个字段但是依然被查询了出来,内网带宽使用巨大,没能把所有查询都找出来强制排除掉这个字段。最后把数据全部迁出来了,重构了需要使用这个字段的代码,把内嵌数组字段直接清空了。内网带宽用量从接近 Gb/s 下降到了 十几 Mb/s . 当然这是使用和设计上的问题,不得不说,Mongodb 是真的强。

  • 主 資深大佬 : BoarBoar

    @tangtj 需求不变的话数组内就不会增加

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具