数据存在树形的关系时存数据库好还是哪里好 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
qq1079945484
V2EX    程序员

数据存在树形的关系时存数据库好还是哪里好

  •  
  •   qq1079945484 2020-07-12 10:59:41 +08:00 3760 次点击
    这是一个创建于 1997 天前的主题,其中的信息可能已经有所发展或是发生改变。

    这些数据看做是一棵树的话,深度最多是 4,根节点的直接子节点数最多是 100,其它子节点的子节点数量最多是 16 。

    现在除了正常的删除和插入,查询时还要根据某一节点的 ID (除根节点)查询该节点“所对应的深度为 2 的节点”的所有子节点。(简单说就是找到某一节点的父节点,一直到深度为 2 时,再遍历出它的所有子节点)

    这个数据量和场景到底是存数据库好还是内存啥的,如果不存数据库的话,数据结构是用哪种树形结构啊

    11 条回复    2020-07-13 16:09:48 +08:00
    zhengxiaowai
        1
    zhengxiaowai  
       2020-07-12 11:24:45 +08:00
    如果不是要求性能极高,建议存储到数据库

    放在内存中除了老几样问题,感觉最大问题是没法扩容以及无法使用 load balance,还有就是多实例之前数据怎么同步的问题,依稀记着有人说过某滴,某个业务就是就是全部数据 load 到内存,为了获得极高的性能。

    另外如果是放到内存中,就是类似于 B+树结构,深度为 2 的节点可以用链表串起来,其他没有想到更好的结构了。

    还是推荐用数据库吧,这些操作实现起来都很容易关系型数据库可以看《 SQL 反模式》这本书,如果是图数据库直接撸就好,这些查询都是基本功能
    qq1079945484
        2
    qq1079945484  
    OP
       2020-07-12 11:32:51 +08:00
    @zhengxiaowai 好的,非常感谢您的回答,我一定会去看的!
    agagega
        3
    agagega  
       2020-07-12 12:03:32 +08:00 via iPhone
    我记得 pg 有一个专门处理树形结构的插件,也许会做不少性能优化
    buliugu
        4
    buliugu  
       2020-07-12 13:00:45 +08:00
    直接用图数据库就好了
    Mithril
        5
    Mithril  
       2020-07-12 13:04:54 +08:00
    数据量少就关系型,自己处理树结构就好了。
    数据量大的话可以嵌套 JSON 存文档库,能提高一部分性能。
    再大就直接用图数据库了,你这都是基本操作。
    zifangsky
        6
    zifangsky  
       2020-07-12 13:32:16 +08:00
    可以试试图数据库Neo4j,用起来挺简单的
    qq1079945484
        7
    qq1079945484  
    OP
       2020-07-12 15:40:21 +08:00
    @buliugu 谢谢,我要了解一下
    qq1079945484
        8
    qq1079945484  
    OP
       2020-07-12 15:50:20 +08:00
    @Mithril 谢谢,很好的建议,作为新手还是要多多学习一下基本操作......
    qq1079945484
        9
    qq1079945484  
    OP
       2020-07-12 15:53:35 +08:00
    @zifangsky 好的,谢谢,我要了解一下
    Kaciras
        10
    Kaciras  
       2020-07-12 21:39:30 +08:00   1
    存关系数据库我倒是做过,给你参考下。
    https://blog.kaciras.com/article/6/store-tree-in-database
    vliyue
        11
    vliyue  
       2020-07-13 16:09:48 +08:00
    参考数据库设计反模式
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2823 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 14:36 PVG 22:36 LAX 06:36 JFK 09:36
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86