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

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 数据存在树形的关系时存数据库好还是哪里好
未分類
21 7 月 2020

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

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

資深大佬 : qq1079945484 7

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

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

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

大佬有話說 (11)

  • 資深大佬 : zhengxiaowai

    如果不是要求性能极高,建议存储到数据库

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

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

    还是推荐用数据库吧,这些操作实现起来都很容易关系型数据库可以看《 SQL 反模式》这本书,如果是图数据库直接撸就好,这些查询都是基本功能

  • 主 資深大佬 : qq1079945484

    @zhengxiaowai 好的,非常感谢您的回答,我一定会去看的!

  • 資深大佬 : agagega

    我记得 pg 有一个专门处理树形结构的插件,也许会做不少性能优化

  • 資深大佬 : buliugu

    直接用图数据库就好了

  • 資深大佬 : Mithril

    数据量少就关系型,自己处理树结构就好了。
    数据量大的话可以嵌套 JSON 存文档库,能提高一部分性能。
    再大就直接用图数据库了,你这都是基本操作。

  • 資深大佬 : zifangsky

    可以试试图数据库——Neo4j,用起来挺简单的

  • 主 資深大佬 : qq1079945484

    @buliugu 谢谢,我要了解一下

  • 主 資深大佬 : qq1079945484

    @Mithril 谢谢,很好的建议,作为新手还是要多多学习一下基本操作……

  • 主 資深大佬 : qq1079945484

    @zifangsky 好的,谢谢,我要了解一下

  • 資深大佬 : Kaciras

    存关系数据库我倒是做过,给你参考下。
    https://blog.kaciras.com/article/6/store-tree-in-database

  • 資深大佬 : vliyue

    参考数据库设计反模式

文章導覽

上一篇文章
下一篇文章

AD

其他操作

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

51la

4563博客

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