树形结构数据,指定节点的子节点个数问题

yugasun
  • 328

最近遇到一个关于树形结构数据的查询问题,希望有大牛指点迷津:

  1. 背景:最近接手一个项目,里面含有会员推荐功能,随着用户的增加,发展成了一个属性的庞大数据。现在需要针对每个用户查找其发展用户的个数计算,但是由于数据量庞大,每次进行父节点寻址,递归查询,程序就超时无响应,服务器配置2G内存就跑到98%,然后无法计算出结果。

  2. 条件:a. 树形结构如下图

        b.每个父节点的子节点个数不定,可以任意数目
        c.数据表有一个pid来指定其父节点的ID
    

树形结构

求有相关经验的大牛前来指点~~

回复
阅读 6k
5 个回答

以下纯属瞎诌

每个父节点里记录一下子节点个数不行吗。。
插入的时候顺便更新。。

数据量具体是什么数量级的?如果数据量不是特别大按理来说应该不需要消耗这么大资源,递归可以考虑优化,存取中间结果释放内存,改成非递归。

天堂向右
  • 1
新手上路,请多包涵

兄弟我也遇到这样的问题了,你们解决了吗?

Drinkjava2
  • 4
新手上路,请多包涵
zhaler
  • 4
新手上路,请多包涵

看看这个吧https://blog.csdn.net/wei3499...
Drinkjava2老哥说的 新增一个用户 根据算法算出前序遍历顺序 就得更新整个表的line 对于用户推荐关系设计没多大用处

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏